leetcode - majority elements
来源:互联网 发布:apache cxf 日志 配置 编辑:程序博客网 时间:2024/06/13 23:09
leetcode - majority elements
给定size 为n的数组,查找出主元素,就是出现次数大于n/2次的元素。
1.
int majorityElement(vector<int> &num) {
std::map<int, int> im;
for (int i = 0; i < num.size(); ++i){
map<int, int>::iterator it = im.find(num[i]);
if (it == im.end())
{ im[num[i]] = 1; }
else
{ im[num[i]]++; }
if (im[num[i]] > num.size()/2)
{ return num[i]; } }
return 0;}
2.
class Solution {public: int majorityElement(vector<int>& nums) { int ret = nums[0]; int count = 1; for(int i = 1; i < nums.size(); i ++) { if(nums[i] == ret) count ++; else { count --; if(count == 0) { ret = nums[i]; count = 1; } } } return ret; }};
3. Moore's voting algorithm
int majorityElement(vector<int> &num) {
int majorityIndex = 0;
for (int count = 1, i = 1; i < num.size(); i++)
{
num[majorityIndex] == num[i] ? count++ : count--;
if (count == 0) {
majorityIndex = i;
count = 1;
}
}
return num[majorityIndex];
}
4.
class Solution { 2 public: 3 int majorityElement(vector<int> &num) { 4 5 int count = 0; 6 7 for(;;) { 8 if(num.size() == 1) 9 return num[0];10 else {11 int i = rand() % (num.size() - 1);12 for(int j = 0; j < num.size(); j++) {13 if(num[j] == num[i])14 count++;15 }16 if(count > (num.size() / 2))17 return num[i];18 else {19 count = 0;20 continue;21 }22 }23 }24 }5.int my_cmp(int a,int b){return a > b;}int Solution::majorityElement(vector<int> &num){sort(num.begin(),num.end(),my_cmp);return num[num.size()/2];}
0 0
- leetcode - majority elements
- leetcode:Majority Elements 菜鸟解法
- LeetCode(169) Majority Number
- Leetcode Majority Element
- leetcode 169-Majority Element
- 【leetcode 哈希表】Majority Element
- LeetCode:Majority Element
- leetcode:Majority Element
- leetcode: Majority Element
- [LeetCode] Majority Element
- leetcode 153: Majority Element
- leetcode Majority Element
- LeetCode:Majority Element
- 【LeetCode】Majority Numbers
- leetcode:Majority Element
- [LeetCode] Majority Element
- Leetcode-Majority Element
- [leetcode]Majority Element
- Redis安装(单机)
- 怎么用c语言代码判断一个浮点数大于0
- C# 系统日志处理-生产者与消费者模式
- Android实现Windows风格的Dialog
- C# Lambda表达式 基本知识 (引用网上总结)
- leetcode - majority elements
- C中strstr的实现方法
- 用Button调用JSP/Servlet
- 推荐一些socket工具,TCP、UDP调试、抓包工具
- Deriving the Poisson Distribution from the Binomial Distribution
- IM背后的技术
- zoj 2588 Burning Bridges【无向图求桥 并输出桥对应边的序号】
- Hibernate_实体类_注解_大全【转载】
- 【leetcode-49】Anagrams(java)