📜  用于不同元素数组中第三大元素的Python程序(1)

📅  最后修改于: 2023-12-03 14:56:19.043000             🧑  作者: Mango

用于不同元素数组中第三大元素的Python程序

本文将介绍一种用于不同元素数组中查找第三大元素的Python程序。

程序思路

要查找一个不同元素数组中的第三大元素,可以使用一个记录最大值、第二大值和第三大值的列表。

遍历数组,如果当前值大于最大值,则将最大值和第二大值、第三大值依次往后顺延。如果当前值大于第二大值而小于最大值,则将第二大值和第三大值往后顺延。如果当前值大于第三大值而小于第二大值,则将第三大值往后顺延。最后返回第三大值即可。

程序中需要重点处理以下几个情况:

  1. 数组长度小于3的情况,直接返回数组的最大值
  2. 数组中有相同的元素,需要排除相同元素的影响,可以将相同元素直接删除
代码实现
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)$。根据测试用例的结果,可以看出程序能够正确地返回不同元素数组中的第三大元素。