LeetCode – 414. Third Maximum Number

Given a non-empty Given an 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.  
The test cases for this problem are written very cleverly.

public class Solution { public int thirdMax(int[] nums) { Integer f = null; Integer s = null; Integer result = null; for(int i=0;if){ result = s; s = f; f = nums[i]; } else if(s == null || nums[i]>s){ result = s; s = nums[i]; } else if(result == null || nums[i]>result){ result = nums[i]; } } if(nums.length <3 || result == null){ return f; } return result; } }

This siteOriginal articleAll follow "Attribution-NonCommercial-ShareAlike 4.0 License (CC BY-NC-SA 4.0)Please retain the following annotations when sharing or adapting:

Original author:Jake Tao,source:「LeetCode – 414. Third Maximum Number」

145
0 0 145

Further Reading

Post a reply

Log inYou can only comment after that.
Share this page
Back to top