"""
多数元素
给定一个数组,返回其中的多数元素。
多数元素是指在数组中出现次数大于二分之一的元素,
无多数元素则返回None。
"""
import collections
def majority_element(nums):
"""
寻找数组中的多数元素。
使用摩尔投票算法来找到出现次数超过数组长度一半的元素。
如果不存在这样的元素,则返回None。
参数:
nums (list): 一个整数列表。
返回:
int or None: 数组中的多数元素,如果不存在则返回None。
"""
# 使用Counter来统计每个元素的出现次数
ht = collections.Counter(nums)
# 找到出现次数最多的元素
max_number = max(ht.keys(), key=ht.get)
# 判断最多的元素是否满足多数元素的条件(出现次数超过数组长度的一半)
result = max_number if ht[max_number] > len(nums) / 2 else None
return result
if __name__ == '__main__':
nums = [2, 7, 7, 7, 1, 7, 6]
print(majority_element(nums))
评论前必须登录!
注册