空间复杂度为O(1),但时间复杂度不能达到O(n)。
在累计记录count的同时,比较是否出现次数严格大于数组的二分之一。
class Solution {
public:
/*
* @param nums: a list of integers
* @return: find a majority number
*/
int majorityNumber(vector<int> &nums) {
// write your code here
int count = 1;
int j = 0;
for(int i = 1; i < nums.size() || j < nums.size(); i++)
{
if(nums[j] == nums[i])
{
count++;
if(count * 2 > nums.size())
{
return nums[i];
}
}
if(i == nums.size())
{
j++;
i = j + 1;
}
}
return 0;
}
};
2018/1/26