Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.
You may assume that the array is non-empty and the majority element always exist in the array.
里面居然涉及到比特位操作,不明白此题本意到底是要寻求怎样一个解法
int majorityElement(vector<int> &num) {
//这个题目也在PAT题里面看到过,求占有量超过一半的数字
int count = 1;
int value = num[0];
int len = num.size();
for (int i = 1; i < len; ++i)
{
if (num[i] == value)
++count;
else
--count;
if (count < 0)
{
value = num[i];
count = 1;
}
}
return value;
}
本文介绍了一种寻找数组中出现次数超过一半的元素的算法。该算法通过遍历数组并使用计数器跟踪当前候选元素的方式实现,确保了时间和空间效率。
525

被折叠的 条评论
为什么被折叠?



