给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一。
给出数组[1,1,1,1,2,2,2],返回 1
python:
class Solution:
"""
@param: nums: a list of integers
@return: find a majority number
"""
def majorityNumber(self, nums):
# write your code here
ele = nums[0]
count = 0
for i in nums:
if ele == i:
count += 1
else:
count -= 1
if count < 0:
ele = i
return ele
C++:
class Solution {
public:
/*
* @param nums: a list of integers
* @return: find a majority number
*/
int majorityNumber(vector<int> &nums) {
// write your code here
int ele = nums[0];
int count = 0;
for (int i = 0; i < nums.size(); i++)
{
if (ele == nums[i])
{
count++;
}else{
count--;
if (count < 0)
ele = nums[i];
}
}
return ele;
}
};