站长工具流量统计,影楼网站服务,百度怎么发自己的小广告,外贸营销平台推广[LeetCode] 414.第三大的数(Java)
1.题目描述
给你一个非空数组#xff0c;返回此数组中 第三大的数 。如果不存在#xff0c;则返回数组中最大的数。
示例 1#xff1a;输入#xff1a;[3, 2, 1]
输出#xff1a;1
解释#xff1a;第三大的数是 1 。
示例 2#xff…[LeetCode] 414.第三大的数(Java)
1.题目描述
给你一个非空数组返回此数组中 第三大的数 。如果不存在则返回数组中最大的数。
示例 1输入[3, 2, 1]
输出1
解释第三大的数是 1 。
示例 2输入[1, 2]
输出2
解释第三大的数不存在, 所以返回最大的数 2 。
示例 3输入[2, 2, 3, 1]
输出1
解释注意要求返回第三大的数是指在所有不同数字中排第三大的数。
此例中存在两个值为 2 的数它们都排第二。在所有不同数字中排第三大的数为 1 。
2.解题思路 先排序倒着遍历并记录非重复的数据在hash表中取第三次的即为第三大的数。 3.解法
class Solution {public int thirdMax(int[] nums) {int len nums.length;Arrays.sort(nums);MapInteger, Integer map new HashMap();int time 1;for (int i len - 1; i -1; i--){if (!map.containsKey(nums[i]))map.put(nums[i], time);if (time 3)return nums[i];}return nums[len - 1];}
}4.技能点
hash表