414. Third Maximum Number
Posted keepac
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了414. Third Maximum Number相关的知识,希望对你有一定的参考价值。
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; } }
以上是关于414. Third Maximum Number的主要内容,如果未能解决你的问题,请参考以下文章