我是靠谱客的博主 时尚百褶裙,最近开发中收集的这篇文章主要介绍414. 第三大的数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。

 

示例 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. 第三大的数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部