给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。
注意事项
You may assume that the array is non-empty and the majority number always exist in the array.
样例
给出数组[1,1,1,1,2,2,2],返回 1
思路:
1.计数,找数量最多的元素
2.主元素个数大于数量的二分之一,所以排序后的中间元素一定为主元素
class Solution: """ @param: nums: a list of integers @return: find a majority number """ def majorityNumber(self, nums): # write your code here nums.sort() return nums[len(nums)/2]
九章:
class Solution: def majorityNumber(self, nums): candidate = None count = 0 for num in nums: if count == 0: candidate = num count += 1 elif candidate == num: count += 1 else: count -= 1 return candidate