数组中超过一半的数字

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;
}

};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务