首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >leetCode177|第三大的数

leetCode177|第三大的数

作者头像
码农王同学
发布于 2021-02-02 05:54:56
发布于 2021-02-02 05:54:56
29800
代码可运行
举报
文章被收录于专栏:后端Coder后端Coder
运行总次数:0
代码可运行

一,第三大的数

1,问题简述

给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。

2,示例描述

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
示例 1:

输入: [3, 2, 1]

输出: 1

解释: 第三大的数是 1.
示例 2:

输入: [1, 2]

输出: 2

解释: 第三大的数不存在, 所以返回最大的数 2 .
示例 3:

输入: [2, 2, 3, 1]

输出: 1

解释: 注意,要求返回第三大的数,是指第三大且唯一出现的数。
存在两个值为2的数,它们都排第二。

3,题解思路

使用treeSet数据结构进行解决

4,题解程序

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.TreeSet;

public  class ThirdMaxTest {
    public static void main(String[] args) {
        int[] nums = {2, 2, 3, 1};
        thirdMax(nums);
    }

    public static int thirdMax(int[] nums) {
        TreeSet<Integer> treeSet = new TreeSet<>();
        for (int i = 0; i < nums.length; i++) {
            treeSet.add(nums[i]);
            if (treeSet.size() > 3) {
                treeSet.pollFirst();
            }
        }
        return treeSet.size() > 2 ? treeSet.pollFirst() : treeSet.pollLast();
    }
}

5,总结一下

写到这,突然有点想去分析treeSet的源码了,其实treeSet 在实际的开发过程中也很少见,有的时候也会用到

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农王同学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
​LeetCode刷题实战414:第三大的数
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试。所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 !
程序员小猿
2021/10/21
1910
414. 第三大的数
给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。 示例 1: 输入:[3, 2, 1] 输出:1 解释:第三大的数是 1 。 把元素都插入TreeSet里面,他会自动升序排列 在插入过程中,一直维护一个长度为3的,如果大于3,那么删除最小的那个 插入完毕 没有第三个 就返回最后一个(最大值) ,否则返回第一个(一直维护第一个是倒数第三大的) ---- class Solution { public int thirdMax(int[] nums)
编程张无忌
2021/06/01
3290
leetcode之第三大的数
这里依次维护最大,第二大,第三大的数字,遍历数组判断元素值是否大于最大值或者第二大值或者第三大的值,然后对应更新相应的值。
code4it
2020/11/24
2970
leetcode之第三大的数
【算法千题案例】⚡️每日LeetCode打卡⚡️——54.第三大的数
---- 原题样例:. 第三大的数 给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。 示例: 输入:[3, 2, 1] 输出:1 解释:第三大的数是 1 。 示例 2: 输入:[1, 2] 输出:2 解释:第三大的数不存在, 所以返回最大的数 2 。 示例3 输入:[2, 2, 3, 1] 输出:1 解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。 此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1 。 说明: 输出结果中
呆呆敲代码的小Y
2021/10/15
2880
LeetCode 414. 第三大的数
https://leetcode-cn.com/problems/third-maximum-number/
freesan44
2021/09/11
1760
LeetCode 414. 第三大的数
LeetCode 414. 第三大的数
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。
Michael阿明
2020/07/13
3000
LeetCode 414. 第三大的数
414. 第三大的数
看到这道题目我又真的这就是一道要解出来很简单的题目,但是要达到时间复杂度或空间复杂度很小的情况却不是那么容易做到的,比如此题你能设计一个时间复杂度 O(n) 的解决方案吗?
Regan Yue
2023/03/23
2060
leetcode-414-第三大的数
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。
Spaceack
2020/11/04
3480
第三大的数(C++)
对应我的掘金文章:https://juejin.cn/post/7147265935374549000
GeekLiHua
2025/01/21
890
【Leetcode -412.Fizz Buzz -414.第三大的数】
题目:给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中:
YoungMLet
2024/03/01
1150
力扣题目汇总(缺失数字,第三大的数,至少是其他数字两倍的最大数)
缺失数字 1.题目描述 给定一个包含 0, 1, 2, ..., n 中 n 个数的序列,找出 0 .. n 中没有出现在序列中的那个数。 示例 1: 输入: [3,0,1] 输出: 2 示例
小小咸鱼YwY
2019/07/24
4790
C#版 - Leetcode 414. Third Maximum Number题解
在线提交: https://leetcode-cn.com/problems/third-maximum-number
Enjoy233
2019/03/05
5840
LeetCode笔记:414. Third Maximum Number
题目要求时间复杂度为O(n),所以排除使用先排序的方法来做,排序后基本时间复杂度就超了。
Cloudox
2021/11/23
2480
从 O(NlogN) 到 O(N) 的优化:「二分滑动窗口」& 「双指针」 ...
这是 LeetCode 上的「1438. 绝对差不超过限制的最长连续子数组」,难度为 Medium。
宫水三叶的刷题日记
2021/02/26
7970
LeetCode <dp>152&628 Maximum Product Subarray
Given an integer array nums, find the contiguous subarray within an array (containing at least one number) which has the largest product.
大学里的混子
2018/11/13
5410
Java集合--Set(基础)
1.Set 上一篇,我们介绍Java中的List集合。本篇,让我们继续学习,来了解下Set集合; Set继承于Collection接口,是一个不允许出现重复元素,并且无序的集合,主要有HashSet和TreeSet两大实现类。 在判断重复元素的时候,Set集合会调用hashCode()和equal()方法来实现。 HashSet是哈希表结构,主要利用HashMap的key来存储元素,计算插入元素的hashCode来获取元素在集合中的位置; TreeSet是红黑树结构,每一个元素都是树中的一个节点,插入的元素
贾博岩
2018/05/11
1.7K0
leetcode158|数组中的k-diffs数对
给定一个整数数组和一个整数 k,你需要在数组里找到不同的 k-diff 数对,并返回不同的 k-diff 数对 的数目。
码农王同学
2021/01/15
4490
「 深入浅出 」集合Set
扩展 判断两个元素相等的标准:两个对象通过equals()方法比较相等,并且两个对象的hashCode()方法返回值也相等。
KEN DO EVERTHING
2019/01/17
3810
「单调队列」数据结构解决滑动窗口问题
前文用 单调栈解决三道算法问题 介绍了单调栈这种特殊数据结构,本文写一个类似的数据结构「单调队列」。
labuladong
2021/09/23
4340
关关的刷题日记13——Leetcode 414. Third Maximum Number
关小刷刷题13 – Leetcode 414. Third Maximum Number 题目 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: 1Exp
WZEARW
2018/04/09
7450
相关推荐
​LeetCode刷题实战414:第三大的数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验