标签:count nums curNum 元素 扫描 int 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。