【力扣-每日小练】414. 第三大的数(python)

414. 第三大的数

题目链接:https://leetcode-cn.com/problems/third-maximum-number/
难度:简单
标签:数组(array)

题目描述

给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)

示例:

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

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

示例 3:
输入: [2, 2, 3, 1]
输出: 1
解释: 注意,要求返回第三大的数,是指第三大且唯一出现的数。
存在两个值为2的数,它们都排第二。

代码示例

class Solution:
    def thirdMax(self, nums: List[int]) -> int:
        nums = set(nums)
        nums = sorted(nums) # 对nums进行升序排序
        return nums[-1]  if len(nums) < 3 else nums[-3]

【力扣-每日小练】414. 第三大的数(python)_第1张图片

题外话:关于python中的排序

sort函数

1.描述

sort() 函数用于对原列表进行排序,(注意关键字,只能说列表对象,而且是对原对象进行修改)如果指定参数,则使用比较函数指定的比较函数。

2.语法

sort()方法语法:
list.sort( key=None, reverse=False)

  • 其中reverse – 指定排序规则,reverse = True 降序, reverse = False 升序(默认)。

示例

# 列表
vowels = ['e', 'a', 'u', 'o', 'i']
# 降序
vowels.sort(reverse=True)
# 输出结果
print ( '降序输出:', vowels )
# 输出的结果:降序输出: ['u', 'o', 'i', 'e', 'a']

以下实例演示了通过指定列表中的元素排序来输出列表

# 获取列表的第二个元素
def takeSecond(elem):
    return elem[1]
 
# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
 
# 指定第二个元素排序
random.sort(key=takeSecond)
 
# 输出类别
print ('排序列表:', random)
# 输出的结果:排序列表:[(4, 1), (2, 2), (1, 3), (3, 4)]

sorted() 函数

参考https://www.runoob.com/python/python-func-sorted.html

1.描述

sorted() 函数对所有可迭代的对象进行排序操作。

sortsorted 区别:

  • sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

  • list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

你可能感兴趣的:(力扣练习-简单)