leetCode-Third Maximum Number
来源:互联网 发布:苏州淘宝模特招聘 编辑:程序博客网 时间:2024/05/21 22:45
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: 1Explanation: The third maximum is 1.
Example 2:
Input: [1, 2]Output: 2Explanation: The third maximum does not exist, so the maximum (2) is returned instead.
Example 3:
Input: [2, 2, 3, 1]Output: 1Explanation: Note that the third maximum here means the third maximum distinct number.Both numbers with value 2 are both considered as second maximum.
Solution:
class Solution { public int thirdMax(int[] nums) { Integer max1 = null; Integer max2 = null; Integer max3 = null; //注意不同元素 for (Integer n : nums) { if (n.equals(max1) || n.equals(max2) || n.equals(max3)) continue; if (max1 == null || n > max1) { max3 = max2; max2 = max1; max1 = n; } else if (max2 == null || n > max2) { max3 = max2; max2 = n; } else if (max3 == null || n > max3) { max3 = n; } } return max3 == null ? max1 : max3; }}
Best Solution:
class Solution { public int thirdMax(int[] nums) { long first = Long.MIN_VALUE; long second =Long.MIN_VALUE; long third = Long.MIN_VALUE; for(int i = 0; i< nums.length; i++) { if(nums[i] > first) { third = second; second = first; first = nums[i]; }else if(nums[i] > second && nums[i] < first) { third = second; second = nums[i]; }else if( nums[i] > third && nums[i] < second) { third = nums[i]; } } return third == Long.MIN_VALUE ? (int)first : (int)third; }}
总结:设置3个数,遍历数组划分数据,需要注意的是每次添加的是不同的数据。
阅读全文
0 0
- LeetCode Third Maximum Number
- LeetCode-Third Maximum Number
- [Leetcode] Third Maximum Number
- LeetCode: Third Maximum Number
- leetcode---Third Maximum Number
- LeetCode : Third Maximum Number
- leetcode[Third Maximum Number]
- LeetCode Third Maximum Number
- leetCode-Third Maximum Number
- LeetCode #414: Third Maximum Number
- leetcode 414. Third Maximum Number
- LeetCode:414. Third Maximum Number
- LeetCode-414. Third Maximum Number
- Leetcode之Third Maximum Number
- LeetCode 414. Third Maximum Number
- [Leetcode]414. Third Maximum Number
- LeetCode 414. Third Maximum Number
- <leetcode>414. Third Maximum Number
- 安装JDK、安装TOMCAT
- C#初识 09值类型和引用类型
- linux 进程间通信 信号量
- Spring boot和MyBatis的整合
- ATECC508A芯片开发笔记(八):ECDH算法配置方法、执行过程及实现原理
- leetCode-Third Maximum Number
- GC常用算法
- java异常
- HTML总结 HTML详细介绍重要知识点
- 关于Presentation Error的一点经验
- 0-1背包问题从复杂到简单的优化历程
- LeetCode#1-TwoSum
- PBR渲染原理
- 【Scikit-Learn 中文文档】神经网络模块(监督的)- 监督学习