diff --git a/src/main/java/leetcode/editor/cn/ThirdMaximumNumber.java b/src/main/java/leetcode/editor/cn/ThirdMaximumNumber.java new file mode 100644 index 0000000..db6c776 --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ThirdMaximumNumber.java @@ -0,0 +1,75 @@ +//给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。 +// +// +// +// 示例 1: +// +// +//输入:[3, 2, 1] +//输出:1 +//解释:第三大的数是 1 。 +// +// 示例 2: +// +// +//输入:[1, 2] +//输出:2 +//解释:第三大的数不存在, 所以返回最大的数 2 。 +// +// +// 示例 3: +// +// +//输入:[2, 2, 3, 1] +//输出:1 +//解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。 +//此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1 。 +// +// +// +// 提示: +// +// +// 1 <= nums.length <= 104 +// -231 <= nums[i] <= 231 - 1 +// +// +// +// +// 进阶:你能设计一个时间复杂度 O(n) 的解决方案吗? +// Related Topics 数组 排序 +// 👍 230 👎 0 + +package leetcode.editor.cn; + +import java.util.Arrays; +import java.util.TreeSet; + +//414:第三大的数 +class ThirdMaximumNumber { + public static void main(String[] args) { + //测试代码 + Solution solution = new ThirdMaximumNumber().new Solution(); + } + + //力扣代码 + //leetcode submit region begin(Prohibit modification and deletion) + class Solution { + public int thirdMax(int[] nums) { + TreeSet set = new TreeSet<>(); + for (int i : nums) { + set.add(i); + if (set.size() > 3) { + set.pollFirst(); + } + } + if (set.size() < 3) { + return set.pollLast(); + } else { + return set.pollFirst(); + } + } + } +//leetcode submit region end(Prohibit modification and deletion) + +} \ No newline at end of file diff --git a/src/main/java/leetcode/editor/cn/ThirdMaximumNumber.md b/src/main/java/leetcode/editor/cn/ThirdMaximumNumber.md new file mode 100644 index 0000000..264620b --- /dev/null +++ b/src/main/java/leetcode/editor/cn/ThirdMaximumNumber.md @@ -0,0 +1,40 @@ +

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

+ +

 

+ +

示例 1:

+ +
+输入:[3, 2, 1]
+输出:1
+解释:第三大的数是 1 。
+ +

示例 2:

+ +
+输入:[1, 2]
+输出:2
+解释:第三大的数不存在, 所以返回最大的数 2 。
+
+ +

示例 3:

+ +
+输入:[2, 2, 3, 1]
+输出:1
+解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。
+此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1 。
+ +

 

+ +

提示:

+ + + +

 

+ +

进阶:你能设计一个时间复杂度 O(n) 的解决方案吗?

+
Related Topics
  • 数组
  • 排序
  • \n
  • 👍 230
  • 👎 0
  • \ No newline at end of file