数组中超过一半的数字
class Solution {
public:
int MoreThanHalfNum_Solution(vector<int> numbers) {
int res;
int n = numbers.size();
if(0 == n)
return 0;
int time = 0;
for(int i = 0; i<n; i++)
{
if(0 == time)
{
res = numbers[i];
time++;
}
else{
if(res == numbers[i])
time++;
else
time--;
}
}
if(isMoreThanHalf(numbers, res))
return res;
else
return 0;
}
private:
bool isMoreThanHalf(vector<int>num, int res)
{
int n = num.size();
if(n == 0)
return false;</int></int>
int half = n>>1; int time = 0; for(int i = 0; i<n; i++) { if(num[i] == res) time ++; } if(time> half) return true; else return false; }
};