Third Maximum Number
在非空整数数组中找到倒数第三大的数;如果长度小于三,返回最大的数;第三个最大不同数字。
def thirdMax(nums): v = [float('-inf'), float('-inf'), float('-inf')] for num in nums: if num not in v: if num > v[0]: v = [num, v[0], v[1]] elif num > v[1]: v = [v[0], num, v[1]] elif num > v[2]: v = [v[0],v[1], num] return max(nums) if float('-inf') in v else v[2] nums = [3,4,7,2,5,8,8] print(thirdMax(nums))
def thirdMax(nums): nums = set(nums) if len(nums) < 3: return max(nums) nums.remove(max(nums)) nums.remove(max(nums)) return max(nums) A = [3,4,7,2,5,8,8] print(thirdMax(A))
总结:
python中表示正负无穷:
float('inf'), float('-inf')
代码中不考虑重复的时候可用set()函数创建一个无序不重复元素集。