蓝桥杯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)

运行结果

相关推荐
老前端的功夫3 分钟前
【Java从入门到入土】21:List三剑客:ArrayList、LinkedList、Vector的爱恨情仇
java·javascript·网络·python·list
吃一根烤肠3 分钟前
Trae Builder模式实战:10分钟生成可部署的Flask电商项目
python·flask·建造者模式
samson_www6 分钟前
用nssm部署FASTAPI服务
数据库·python·fastapi
小李云雾7 分钟前
零基础-从ESS6基础到前后端联通实战
前端·python·okhttp·中间件·eclipse·html·fastapi
axinawang17 分钟前
XPath与lxml解析库
爬虫·python
电商API&Tina21 分钟前
唯品会数据采集API接口||电商API数据采集
java·javascript·数据库·python·sql·json
zero159731 分钟前
Python 8天极速入门笔记(大模型工程师专用):第三篇-列表与字典(Python核心数据结构,大模型必备)
开发语言·python·ai编程
书到用时方恨少!36 分钟前
Python 零基础入门系列(十一):模块和包
开发语言·python
阿kun要赚马内44 分钟前
Python面向对象编程:封装性
开发语言·python
Yao.Li1 小时前
PVN3D TensorRT 环境配置指南
人工智能·python·具身智能