方法:可以去重排序,或者使用优先队列,方法很多,我用的是,先排序(未去重),然后个数小于3的直接返回最大值,否则从后开始遍历,看是否有第三个最大值,没有返回最大值
class Solution {
public int thirdMax(int[] nums) {
Arrays.sort(nums);
int len=1;
if(nums.length<3){
return nums[nums.length-1];
}
for(int i=nums.length-2;i>=0;i--){
if(nums[i]!=nums[i+1]){
len++;
}
if(len==3){
return nums[i];
}
}
return nums[nums.length-1];
}
}