Leetcode180: Majority Element II
2015-12-04 17:17
309 查看
Given an integer array of size n, find all elements that appear more than
因为不超过n/3个数的数最多只有2个,可以定义两个变量,利用类似Majority Element中的思路求解。
⌊ n/3 ⌋times. The algorithm should run in linear time and in O(1) space.
因为不超过n/3个数的数最多只有2个,可以定义两个变量,利用类似Majority Element中的思路求解。
class Solution { public: vector<int> majorityElement(vector<int>& nums) { int n1 = 0, n2 = 0, t1 = 0, t2 = 0; for(int i = 0; i < nums.size(); i++) { if(nums[i] == n1) t1++; else if(nums[i] == n2) t2++; else if(t1 == 0) { n1 = nums[i]; t1 = 1; } else if(t2 == 0) { n2 = nums[i]; t2 = 1; } else { t1--; t2--; } } t1 = 0; t2 = 0; for(int i = 0; i < nums.size(); i++) { if(nums[i] == n1) t1++; else if(nums[i] == n2) t2++; } vector<int>res; if(t1 > nums.size()/3) res.push_back(n1); if(t2 > nums.size()/3) res.push_back(n2); return res; } };
相关文章推荐
- StarUML使用说明-指导手册
- 通过dSYM和app文件分析Crash
- pat甲 1078 Hashing
- 在WPF中获取程序的专用工作集内存 PerformanceCounter
- 模糊测试相关文章
- DPDK编程指导——编写高效代码(翻译)
- Ansi、GB2312、GBK、Unicode(utf8、16、32)
- 点击头像单独把图片拉取出来.然后再次点击回到初始效果
- Echarts使用指南
- Php数组
- 从内存角度深入看结构体(window/linux)大小
- hdoj Calculate S(n) 2114 (数学规律 取余)
- C# 随机生成手机号码(中国地区)
- 广州的小伙伴福利-由微软组织的在广州SQL Server线下活动
- akka cluster make node as unreachable 问题
- react tab
- Xcode svn import项目 上传.a文件(静态库)
- EasyUI datagrid 获取全部数据
- Rose Study
- android 简单设置欢迎页面