其他分享
首页 > 其他分享> > 414. 第三大的数

414. 第三大的数

作者:互联网

/**
     * 因为求第三大的数,所以需要一个指针存放第三大的
     * 如果后面的数大于最大数和第二大的数都需要把最大数,第二大,的数移动
     * @param nums
     * @return
     */
    public static int thirdMax(int[] nums) {
        if (nums.length==1){
            return nums[0];
        }
        if (nums.length==2){
            return Math.max(nums[0],nums[1]);
        }
        long max = Long.MIN_VALUE,sec = Long.MIN_VALUE,thrid = Long.MIN_VALUE;
        for (int i = 0; i < nums.length; i++) {
            //去重复
            if (nums[i]==max || nums[i]==sec){
                continue;
            }
            if (nums[i]>max){
                thrid = sec;
                sec = max;
                max = nums[i];
            }else if (nums[i]>sec && nums[i]!=max){
                thrid = sec;
                sec = nums[i];
            }else if (nums[i]>thrid && nums[i]!=sec){
                thrid = nums[i];
            }
        }
        return thrid==Long.MIN_VALUE? (int) max:(int) thrid;
    }

 

标签:nums,thrid,max,MIN,第三,414,int,sec
来源: https://www.cnblogs.com/xiaoruirui/p/15083202.html