码迷,mamicode.com
首页 > 编程语言 > 详细

【数组】169. 多数元素

时间:2020-05-04 17:39:25      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:width   style   solution   元素   png   return   个数   次数   bsp   

题目:

技术图片

 

 

解答:

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

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

 

【数组】169. 多数元素

标签:width   style   solution   元素   png   return   个数   次数   bsp   

原文地址:https://www.cnblogs.com/ocpc/p/12827093.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!