本文介绍: 要在一个整数表中找到第三个最大的数字。如果列表中没有三个不同的数字,则返回最大的数字。此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 1。注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。第三大的数不存在, 所以返回最大的数 2。如果不存在,则返回数组中最大的数。给你一个非空数组返回数组中。第三大的数是 1。

题目

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

示例 1:

输入[3, 2, 1]
输出1
解释:第三大的数是 1 。

示例 2:

输入[1, 2]
输出2
解释:第三大的数不存在, 所以返回最大的数 2 。

示例 3:

输入[2, 2, 3, 1]
输出1
解释:注意,要求返回第三大的数,是指在所有不同数字中排第三大的数。
此例中存在两个值为 2 的数,它们都排第二。在所有不同数字中排第三大的数为 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)

运行结果

 

原文地址:https://blog.csdn.net/Python_1981/article/details/134679238

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_10803.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注