当前位置: 首页 > 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/news/149853.html

相关文章:

  • 线性表之链式表
  • 网工内推 | 中高级网工,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 -- 使用说明
  • 【Apifox】测试工具自动编写接口文档
  • ubuntu系统进入休眠后cuda初始化报错
  • 【Redis基础】Redis基本的全局命令
  • 一文详解Python中常用数据类型
  • render函数举例
  • vue中下载文件后无法打开的坑
  • Linux 下命令行启动与关闭WebLogic的相关服务
  • PPP/INS紧组合代码学习
  • uniapp设置手机通知权限以及uniapp-push2.0推送
  • 【迅搜04】索引配置(一)加载配置文件以及服务端配置