LeetCode || Majority Element II
2015-09-11 11:21
246 查看
class Solution { public: vector<int> majorityElement(vector<int>& nums) { //每次取出来三个数,如果三个数均不相同,则都删除。 if(nums.size() < 2) return nums; //找到数组中出现次数大于等于n/3的 int m1 = nums[0], m2; int numM1 = 1, numM2 = 0 ; int i = 1; while(i < nums.size()) { if(numM1 == 0 && (numM2 == 0 || m2 != nums[i])) { m1 = nums[i]; numM1++; } else if(m2 == nums[i])//如果当前值和m2同 numM2++; else if(nums[i] == m1)//如果当前值和m1同 numM1++; else if(numM2 == 0) { numM2++; m2 = nums[i]; } else { numM1--; numM2--; } i++; } //过滤掉出现次数等于n/3的。 vector<int> r; if(numM1 > 0 || numM2 > 0) { int c1 = 0; int c2 = 0; //统计下m1出现的次数是不是大于n/3 for(int i = 0;i<nums.size();i++) { if(numM1> 0 && nums[i] == m1) c1++; if(numM2 > 0 && nums[i] == m2) c2++; } if(c1 > nums.size()/3) r.push_back(m1); if(c2 > nums.size()/3) r.push_back(m2); } return r; } };
相关文章推荐
- Android中关于Handler的若干思考
- static
- burpsuite+sqlmap跨登录验证SQL注入
- iOS--基础知识--手势
- iOS 统计打点那些事
- form 表单提交数据
- Android中This、super、getApplicationContext()、getApplication()之间的区别
- 浪潮MegaCli
- MVC权限管理系统dwpro项目权限按钮无故自动消失问题
- C#输出日历
- 打开/取消 SecureCRT的右键复制功能
- angularjs的双向绑定详解
- Spring集成log4j
- js事件冒泡原理及处理
- 第二篇 微信开发 探秘微信公众号(转载自walkingmanc专栏)【转】
- 划分子网
- Google推荐的图片加载库Glide介绍(转载)
- .net调用存储过程碰到的一个问题
- Effective C++ 条款42 了解typename的双重意义
- Siebel escript学习笔记