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
Was this helpful?