链接
https://leetcode-cn.com/problems/third-maximum-number/description/
要求
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。
输入: [3, 2, 1]
输出: 1
输入: [1, 2]
输出: 2
输入: [2, 2, 3, 1]
输出: 1
思路
如果set后长度<3,则返回最后一个数
如果set后长度>=3,则返回倒数第三个数
代码
执行用时:28 ms
class Solution(object):
def thirdMax(self, nums):
if len(set(nums)) < 3:
return sorted(list(set(nums)))[-1]
else:
return sorted(list(set(nums)))[-3]
image.png
网友评论