当前位置: 首页 > article >正文

蓝桥杯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代码

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)

运行结果

 


http://www.kler.cn/a/149853.html

相关文章:

  • 重新认识HTTPS
  • scala的练习题
  • 项目模块详细说明
  • Linux下useradd 和 adduser的区别
  • Linux如何将文件或目录打成rpm包?-- rpmbuild打包详解
  • 如何选择最适合的自闭症干预机构?
  • 线性表之链式表
  • 网工内推 | 中高级网工,IE认证优先,带薪年假,五险一金
  • Windows如何启动MySQL
  • [Linux] linux防火墙
  • 科普 | 隧道代理IP,简化操作提升安全性
  • vue3+vite打包自动生成dist.zip文件
  • JVM
  • 智能合约安全漏洞与解决方案
  • Unity 关于Input类的使用
  • 惠威M200MKII音箱拆机
  • 手摸手Element-ui组件化开发
  • 【C/C++】常见模拟题题解
  • React 和 Vue 在技术层面有哪些区别?
  • JSON.stringify,JSON.parse
  • Linux下文件操作函数
  • 【Linux】 sudo命令使用
  • 每日一题(LeetCode)----哈希表--两数之和
  • ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用【鸿蒙专栏-05】
  • el-table合并行
  • SecureCRT -- 使用说明