【数组】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 };

 

上一篇:【信奥通】1038


下一篇:pat 乙类 1038 python 超时