/*O(n)解法:
1.设置两个变量,cur保存当前元素值,count表示当前元素出现的个数;
2.遍历数组,
1)如果当前元素nums[i]==cur,则++count;
2)否则,若count>1,--count;若count==1,则cur=nums[i];
最后,返回cur。
*/
class Solution {
public:
int majorityElement(vector<int>& nums) {
int cur(nums[0]), count(1);
for(int i = 1; i < nums.size(); ++i){
if(nums[i] == cur) ++count;
else{
if(count == 1) cur = nums[i];
else --count;
}
}
return cur;
}
};LeetCode之Majority Element
最新推荐文章于 2020-09-22 17:08:26 发布
本文介绍了一种O(n)时间复杂度的算法来解决数组中众数的问题。通过使用两个变量cur和count,该算法可以在遍历数组的过程中找到出现次数最多的元素。具体实现包括初始化cur和count,然后遍历数组,根据当前元素更新cur和count的值。最终返回cur作为众数。
174

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



