# leetcode - majority elements

leetcode - majority elements

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

• 本文已收录于以下专栏：

## leetcode 229: Majority Element II

leetcode 229: Majority Element II python java c++
• xudli
• 2015年07月07日 04:40
• 11574

## LeetCode169:Majority Element

Given an array of size n, find the majority element. The majority element is the element that appear...
• u012501459
• 2015年07月09日 19:29
• 1549

## 【LeetCode-面试算法经典-Java实现】【169-Majority Element（主元素）】

【169-Majority Element（主元素）】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-Chao】原...
• DERRANTCM
• 2015年08月23日 06:38
• 4758

## leetcode229-Majority Element II(数组中出现最多的数II)

• will130
• 2016年04月02日 20:07
• 312

## LeetCode229:Majority Element II

Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The alg...
• u012501459
• 2015年07月29日 15:13
• 1025

## Leetcode (4) Majority Element

• angelazy
• 2015年04月11日 16:08
• 1878

## 169. Majority Element [easy] (Python)

• coder_orz
• 2016年05月14日 20:04
• 1458

## LeetCode169. Majority Element分治法

• wmdshhz0404
• 2016年09月21日 00:07
• 611

## leetcode169---Majority Element(数组中出现次数超过一半的数)

• will130
• 2016年01月20日 09:53
• 675

## LeetCode 169. Majority Element 题解（C++）

Given an array of size n, find the majority element. The majority element is the element that appear...
• prayyojay
• 2016年10月19日 14:41
• 294

举报原因： 您举报文章：leetcode - majority elements 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)