您的位置:首页 > 编程语言 > C语言/C++

LeetCode 169. Majority Element

2015-04-13 10:36 148 查看
题意为在非空数组中有一个数出现次数大于 ceiling(num.size() >> 1), 那么可以进行如下模拟:

任取数组中的两个不相同的数,将它们一起拿去,这样一次一次地拿,最后剩下的一个(或相同的几个)数,即为Majority Element.

代码:

class Solution
{
public:
int majorityElement(vector<int> &num)
{
int candidate;
int cnt = 0;

for (size_t i = 0; i < num.size(); ++ i)
{
if (cnt == 0)
{
candidate = num[i];
++ cnt;
} else
{
cnt += (candidate==num[i])? 1: -1;
}
}

return candidate;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  LeetCode C++