蓝桥杯day02——第三大的数

题目

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

示例 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

解析

要在一个整数列表中找到第三个最大的数字。如果列表中没有三个不同的数字,则返回最大的数字。

  1. 首先,将输入的列表转换为集合,从而删除列表中的重复元素,然后将其转换回列表,并进行排序。这样可以得到列表中的所有不同的数字,并且按照从大到小的顺序排列。
  2. 然后,检查列表的长度是否大于等于3。如果是,则返回列表中的第三个数字(索引为2),因为这是列表中第三大的数字。
  3. 如果列表的长度小于3,则返回列表中的最大数字。这是因为如果列表中只有两个或更少的数字,那么第三大的数字就不存在,因此返回最大的数字作为默认结果。

python代码

python 复制代码
class Solution:
    def thirdMax(self, nums: list[int]) -> int:
        ls=sorted(list(set(nums)),reverse=True)
        if len(ls)>=3:
            return ls[2]
        else:
            return max(ls)

运行结果

相关推荐
u0109272711 分钟前
使用Scrapy框架构建分布式爬虫
jvm·数据库·python
闻缺陷则喜何志丹2 分钟前
【栈 递归】P8650 [蓝桥杯 2017 省 A] 正则问题|普及+
c++·数学·蓝桥杯·递归·
MaoziShan6 分钟前
[ICLR 2026] 一文读懂 AutoGEO:生成式搜索引擎优化(GEO)的自动化解决方案
人工智能·python·搜索引擎·语言模型·自然语言处理·内容运营·生成式搜索引擎
2401_8384725120 分钟前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
深蓝电商API28 分钟前
aiohttp爬取带登录态的异步请求
爬虫·python
rainbow688931 分钟前
Python学生管理系统:JSON持久化实战
java·前端·python
咕噜咕噜啦啦42 分钟前
ROS入门
linux·vscode·python
2301_7903009642 分钟前
用Matplotlib绘制专业图表:从基础到高级
jvm·数据库·python
XLYcmy1 小时前
一个用于统计文本文件行数的Python实用工具脚本
开发语言·数据结构·windows·python·开发工具·数据处理·源代码