标签:lex color value output complex must pre rdm time
return the third maximum number in this array. If it does not exist, return the maximum number. The time complexity must be in O(n).
Input: [2, 2, 3, 1] Output: 1 Explanation: Note that the third maximum here means the third maximum distinct number. Both numbers with value 2 are both considered as second maximum.
注意,重复的数字不算。
这题本没啥难度,一个小tricky 就是用Integer 来初始化 max1, max2, ,max3, 因为Integer 可以被初始化成null 而不是 Integer.MIN_VALUE, 特别在比大小时候null 比 Integer.MIN_VALUE 有价值。
class Solution { public int thirdMax(int[] nums) { Integer max1, max2, max3; max1 = null; max2 = null; max3 = null; for(Integer num: nums){ if(num.equals(max1) || num.equals(max2) || num.equals(max3)) continue; if(max1 ==null || num> max1){ max3 = max2; max2 = max1; max1 = num; } else if(max2 ==null || num>max2){ max3 = max2; max2 = num; } else if(max3 ==null || num>max3){ max3 = num; } } return max3 ==null? max1:max3; } }
标签:lex color value output complex must pre rdm time
原文地址:https://www.cnblogs.com/keepAC/p/10269923.html