479.Second Max of Array

1.Description(Easy)

Find the second max number in a given array.

Notice

You can assume the array contains at least two numbers.

Example

Given[1, 3, 2, 4], return3.

Given[1, 2], return1.

2.Code

这个题不能用排序然后选择第二小的来做,因为当所有的值都一样大时应该输出这个值,而排序的话就会报错。

最开始的两个值大小,得出first max和second max,在后面的每个值和这两个值比大小来更新first 和second.

public int secondMax(int[] nums) {
        int first=Math.max(nums[0], nums[1]);
        int second=Math.min(nums[0], nums[1]);

        for(int i=2;i<nums.length;i++){
            if(nums[i]>first){
                second=first;
                first=nums[i];               
            }
            else if(nums[i]>second){
                second=nums[i];
            }
        }
        return second;
    }

Last updated