首页 > 代码库 > LeetCode Third Maximum Number
LeetCode Third Maximum Number
原题链接在这里:https://leetcode.com/problems/third-maximum-number/#/description
题目:
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.
题解:
设立三个指针,交替赋值.
Time Complexity: O(n), n = nums.length. Space: O(1).
AC Java:
1 public class Solution { 2 public int thirdMax(int[] nums) { 3 Integer max1 = null; 4 Integer max2 = null; 5 Integer max3 = null; 6 7 for(Integer n : nums){ 8 if(n.equals(max1) || n.equals(max2) || n.equals(max3)){ 9 continue; 10 } 11 12 if(max1==null || n>max1){ 13 max3 = max2; 14 max2 = max1; 15 max1 = n; 16 }else if(max2==null || n>max2){ 17 max3 = max2; 18 max2 = n; 19 }else if(max3==null || n>max3){ 20 max3 = n; 21 } 22 } 23 24 return max3 == null ? max1 : max3; 25 } 26 }
类似Kth Largest Element in an Array.
LeetCode Third Maximum Number
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。