其他分享
首页 > 其他分享> > 【数组】169. 多数元素

【数组】169. 多数元素

作者:互联网

题目:

 

 

解答:

假设选择任意两个不相同的数做个消除操作,那么消除玩还剩下的数一定是答案。

(1)扫描一次数组,扫描的过程中记录 "当前数"curNum 和 "当前数的个数"count 。
(2)如果遇到不相同的数,则count减1,count减到0时,curNum换成扫描到的新数。
(3)扫描完一遍数组,最后的curNum就是答案。

 1 class Solution {
 2 public:
 3     int majorityElement(vector<int>& nums) 
 4     {
 5         int curNum = nums[0];
 6         int len = nums.size();
 7 
 8         int count = 1;
 9         for (int i = 1; i < len; ++i)
10         {
11             if (count == 0)
12             {
13                 curNum = nums[i]; 
14                 count = 1;
15             }
16             else
17             {
18                 if (nums[i] != curNum) 
19                 {
20                     count--;
21                 }
22                 else 
23                 {
24                     count++;
25                 }
26             }
27         }
28 
29         return curNum;
30     }
31 };

 

标签:count,nums,curNum,元素,扫描,int,169,数组
来源: https://www.cnblogs.com/ocpc/p/12827093.html