解题思路
- 去重:首先需要去除数组中的重复元素,因为题目要求的是不同的分数。
- 排序:将去重后的数组进行降序排序。
- 返回结果:如果排序后的数组长度大于等于3,返回第三大的元素;否则返回最大的元素。
代码提示
你可以按照以下步骤来实现这个逻辑:
- 去重:可以使用集合(
set)来去除重复元素。 - 排序:使用Python的
sorted函数对集合进行排序。 - 返回结果:根据排序后的数组长度返回相应的元素。
代码框架
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,如果是,返回第三大的元素;否则返回最大的元素。