概述
给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。
示例 1:
输入:[3, 2, 1]
输出:1
解释:第三大的数是 1 。
示例 2:
输入:[1, 2]
输出:2
解释:第三大的数不存在, 所以返回最大的数 2 。
示例 3:
输入:[2, 2, 3, 1]
输出:1
解释:注意,要求返回第三大的数,是指第三大且唯一出现的数。
存在两个值为2的数,它们都排第二。
提示:
1 <= nums.length <= 104
-231 <= nums[i] <= 231 - 1
进阶:你能设计一个时间复杂度 O(n)
的解决方案吗?
import java.util.TreeSet;
public class Solution414 {
public int thirdMax(int[] nums) {
TreeSet<Integer> ts = new TreeSet<Integer>();
for (int i = 0; i < nums.length; i++) {
ts.add(nums[i]);
}
if (ts.size() >= 3) {
ts.pollLast();
ts.pollLast();
return ts.pollLast();
} else {
return ts.pollLast();
}
}
public static void main(String[] args) {
Solution414 sol = new Solution414();
int[] nums = { 3, 2, 1 };
System.out.println(sol.thirdMax(nums));
}
}
最后
以上就是时尚百褶裙为你收集整理的414. 第三大的数的全部内容,希望文章能够帮你解决414. 第三大的数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复