[leetcode] 169. Majority Element

原创 2016年05月30日 11:00:32

Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.

You may assume that the array is non-empty and the majority element always exist in the array.

Solution:

Idea: sort numbers and return (n/2)th element

class Solution {
public:
    int majorityElement(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        return nums[floor(nums.size()/2)];
    }
};

Solution: 

Idea: randomly select one element and check its appliance time in the array. It runs faster.

<span style="font-size:14px;">class Solution {
public:
    int majorityElement(vector<int>& nums) {
        srand(unsigned(time(NULL)));
        int n = nums.size();
        while(true){
            int elem = nums[rand()%n];
            int counter = 0;
            for(int i=0; i<n; i++){
                if(nums[i]==elem)
                    counter++;
            }
            if (counter > n/2)
                return elem;
        }

    }
};</span>

Solution:

Idea: hash table by using unordered_map

<span style="font-size:14px;">class Solution {
public:
    int majorityElement(vector<int>& nums) {
        unordered_map<int, int> counter;
        int n = nums.size();
        int major;
        for(int i=0; i<n; i++){
            if(++counter[nums[i]]>n/2){
                major = nums[i];
                break;
            }
        }
        return major;
    }
};</span>





版权声明:本文为博主原创文章,未经博主允许不得转载。

LeetCode 169. Majority Element 题解(C++)

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

LeetCode169:Majority Element

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

【LeetCode-面试算法经典-Java实现】【169-Majority Element(主元素)】

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

169. Majority Element [easy] (Python)

题目链接https://leetcode.com/problems/majority-element/题目原文 Given an array of size n, find the majorit...
  • coder_orz
  • coder_orz
  • 2016年05月14日 20:04
  • 1448

LeetCode169. Majority Element分治法

题意:求一个序列中出现次数多于一半的元素。 方法很多,可以排序、哈希表、分治等等。...
  • wmdshhz0404
  • wmdshhz0404
  • 2016年09月21日 00:07
  • 610

LeetCode169——Majority Element

Given an array of size n, find the majority element. The majority element is the element that appear...
  • booirror
  • booirror
  • 2015年01月15日 11:11
  • 6370

169. Majority Element 难度:Easy 类别:分治

题目: Given an array of size n, find the majority element. The majority element is the element th...
  • luoyingmin
  • luoyingmin
  • 2016年09月11日 11:06
  • 605

leetcode 229: Majority Element II

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

Majority Element && Majority Element II

查找数组的多数元素
  • u013819100
  • u013819100
  • 2015年08月15日 11:06
  • 2677

Leetcode (4) Majority Element

题目描述Given an array of size n, find the majority element. The majority element is the element that ap...
  • angelazy
  • angelazy
  • 2015年04月11日 16:08
  • 1874
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[leetcode] 169. Majority Element
举报原因:
原因补充:

(最多只允许输入30个字)