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

浙公网安备 33010602011771号