414. Third Maximum Number
阿新 • • 發佈:2017-10-15
distinct ger inpu instead pty for nbsp with this
Given a non-empty array of integers, 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).
Example 1:
Input: [3, 2, 1] Output: 1 Explanation: The third maximum is 1.
Example 2:
Input: [1, 2] Output: 2 Explanation: The third maximum does not exist, so the maximum (2) is returned instead.
Example 3:
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.
1 public int thirdMax(int[] nums) { 2 Integer max1 = null; 3 Integer max2 = null; 4 Integer max3 = null; 5 for (Integer n:nums) 6 { 7 if (n.equals(max1) || n.equals(max2) || n.equals(max3)) continue; 8 if (max1 == null || n > max1) 9 { 10 max3 = max2; 11 max2 = max1; 12 max1 = n;13 }else if (max2 == null || n > max2) 14 { 15 max3 = max2; 16 max2 = n; 17 }else if (max3 == null || n > max3) 18 { 19 max3 = n; 20 } 21 } 22 return max3 == null?max1:max3; 23 }
414. Third Maximum Number