AI刷题第34题解答

55 阅读1分钟

解题思路

  1. 去重:首先需要去除数组中的重复元素,因为题目要求的是不同的分数。
  2. 排序:将去重后的数组进行降序排序。
  3. 返回结果:如果排序后的数组长度大于等于3,返回第三大的元素;否则返回最大的元素。

代码提示

你可以按照以下步骤来实现这个逻辑:

  1. 去重:可以使用集合(set)来去除重复元素。
  2. 排序:使用Python的sorted函数对集合进行排序。
  3. 返回结果:根据排序后的数组长度返回相应的元素。

代码框架

def solution(n: int, nums: list) -> int:
    # 去重
    unique_nums = set(nums)
    
    # 排序
    sorted_nums = sorted(unique_nums, reverse=True)
    
    # 返回结果
    if len(sorted_nums) >= 3:
        return sorted_nums[2]  # 第三大的元素
    else:
        return sorted_nums[0]  # 最大的元素

if __name__ == '__main__':
    print(solution(3, [3, 2, 1]) == 1)
    print(solution(2, [1, 2]) == 2)
    print(solution(4, [2, 2, 3, 1]) == 1)

关键步骤解释

  • set(nums):将数组转换为集合,去除重复元素。
  • sorted(unique_nums, reverse=True):对集合进行降序排序。
  • if len(sorted_nums) >= 3:检查排序后的数组长度是否大于等于3,如果是,返回第三大的元素;否则返回最大的元素。