1. 程式人生 > >414. Third Maximum Number

414. Third Maximum Number

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