原始的题目
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋
times.
You may assume that the array is non-empty and the majority element always exist in the array.
翻译:
给定一个长度为n的数组,找到其中出现次数超过数组长度一半以上的元素输出
思路:
题目的思路很清晰,可以借鉴python中字典的思想,存储每一个数字和他出现的次数的键值对,随着遍历数组的进行更新值即可,下面是具体的实现:
#!usr/bin/env python
#encoding:utf-8
'''
__Author__:沂水寒城
功能:给定一个长度为n的数组,找到其中出现次数超过数组长度一半以上的元素输出
'''
def find_majority_element(num_list):
'''
找出majority element
'''
result_dict={}
for one in num_list:
if one in result_dict:
result_dict[one]+=1
else:
result_dict[one]=1
for key, value in result_dict.items():
if value>len(num_list)/2:
print 'Majority Element is:', key, value
if __name__ == '__main__':
num_list=[1,2,3,4,6,2,2,2,2,3,3,2,2,1,2,1,2,2,3,2,2,2,2,3,3,2,3,1,3,2,3]
find_majority_element(num_list)
结果如下:
Majority Element is: 2 16
[Finished in 0.3s]
对比之下,感觉python还是更舒服