Python 计数器|多数元素
多数元素: 大小为 n 的数组 A[]中的多数元素是出现次数超过 n/2 次的元素(因此最多有一个这样的元素)。
编写一个函数,该函数接受一个数组并发出多数元素(如果存在的话),否则按如下方式输出 NONE:
示例:
Input : 3 3 4 2 4 4 2 4 4
Output : 4
Input : 3 3 4 2 4 4 2 4
Output : NONE
这个问题我们已经有了解决方案,请参考多数元素链接。我们可以使用 Counter(iterable) 函数在 Python 中快速解决这个问题。方法很简单,
- Use the counter () method to convert the given list of elements into a dictionary, with elements as keys and their frequencies as values.
- Now walk through the whole dictionary and check the elements whose frequency follows the condition greater than (n/2), where n is the size of the list. That element will be the majority element.
# Function to find majority element
from collections import Counter
def majority(arr):
# convert array into dictionary
freqDict = Counter(arr)
# traverse dictionary and check majority element
size = len(arr)
for (key,val) in freqDict.items():
if (val > (size/2)):
print(key)
return
print('None')
# Driver program
if __name__ == "__main__":
arr = [3,3,4,2,4,4,2,4,4]
majority(arr)
输出:
4
版权属于:月萌API www.moonapi.com,转载请注明出处