leetcode 169 多数元素

摩尔投票法,首先将第一个元素设置为候选众数,并记录出现的次数,进行遍历的过程中,每一次出现与候选众数不同的数,其count就-1,若是候选众数,则+1,若是count变为0,则代表当前候选众数已经被消耗完全,选择下一个数作为候选众数,直到完成遍历,最后剩下的众数即为数组中的众数,贴代码

 1 class Solution {
 2 public:
 3     int majorityElement(vector<int>& nums) 
 4     {
 5         int res = nums[0];
 6         int n = nums.size();
 7         int count = 1;
 8         for(int i = 1 ; i < n ; i++)
 9         {
10             if(res == nums[i])
11             count++;
12             else
13             {
14                 count--;
15                 if(count == 0)
16                 res = nums[i+1];
17             }
18         }
19         return res;                
20     }
21 };

 

posted @ 2021-09-14 15:37  zhaohhhh  阅读(34)  评论(0)    收藏  举报