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

运行结果

相关推荐
烛阴7 小时前
简单入门Python装饰器
前端·python
好开心啊没烦恼7 小时前
Python 数据分析:numpy,说人话,说说数组维度。听故事学知识点怎么这么容易?
开发语言·人工智能·python·数据挖掘·数据分析·numpy
面朝大海,春不暖,花不开7 小时前
使用 Python 实现 ETL 流程:从文本文件提取到数据处理的全面指南
python·etl·原型模式
2301_805054568 小时前
Python训练营打卡Day59(2025.7.3)
开发语言·python
万千思绪9 小时前
【PyCharm 2025.1.2配置debug】
ide·python·pycharm
微风粼粼10 小时前
程序员在线接单
java·jvm·后端·python·eclipse·tomcat·dubbo
云天徽上11 小时前
【PaddleOCR】OCR表格识别数据集介绍,包含PubTabNet、好未来表格识别、WTW中文场景表格等数据,持续更新中......
python·ocr·文字识别·表格识别·paddleocr·pp-ocrv5
你怎么知道我是队长11 小时前
python-input内置函数
开发语言·python
叹一曲当时只道是寻常11 小时前
Python实现优雅的目录结构打印工具
python
hbwhmama12 小时前
python高级变量XIII
python