📅  最后修改于: 2023-12-03 14:56:19.043000             🧑  作者: Mango
本文将介绍一种用于不同元素数组中查找第三大元素的Python程序。
要查找一个不同元素数组中的第三大元素,可以使用一个记录最大值、第二大值和第三大值的列表。
遍历数组,如果当前值大于最大值,则将最大值和第二大值、第三大值依次往后顺延。如果当前值大于第二大值而小于最大值,则将第二大值和第三大值往后顺延。如果当前值大于第三大值而小于第二大值,则将第三大值往后顺延。最后返回第三大值即可。
程序中需要重点处理以下几个情况:
def thirdMax(nums):
nums = list(set(nums))
length = len(nums)
if length < 3:
return max(nums)
max_list = [-float('inf')] * 3
for num in nums:
if num > max_list[0]:
max_list[2] = max_list[1]
max_list[1] = max_list[0]
max_list[0] = num
elif num > max_list[1]:
max_list[2] = max_list[1]
max_list[1] = num
elif num > max_list[2]:
max_list[2] = num
return max_list[2]
为了测试程序的正确性,需要编写相应的测试用例。以下是测试用例示例:
assert thirdMax([1,2,3,4,5]) == 3
assert thirdMax([10,20,30,40,50]) == 30
assert thirdMax([1,2,2,3,4,5]) == 3
assert thirdMax([1]) == 1
本文介绍了用于不同元素数组中查找第三大元素的Python程序,代码实现简单且易于理解,时间复杂度为$O(n)$。根据测试用例的结果,可以看出程序能够正确地返回不同元素数组中的第三大元素。