/*
* Author: Yang Pei
* Problem: Majority Element
* Source: https://oj.leetcode.com/problems/majority-element/
*
* Note:
* 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:
* Naive method: Use additional space to hold each element's appearances ---> O(n) space complexity
* Greed method: Use a box to hold the majority candidate and count its number ---> O(1) space complexity
*
* Follow up:
* What if the array does not contain a major?
* Final check the candidate to see if its count
*/
public class MajorityElement {
public int majorityElement(int[] num) {
int n = num.length;
int major = 0, count = 0;
for(int i = 0; i < n; i++) {
if(count == 0) {
major = num[i];
count++;
}
else {
if(major == num[i])
count++;
else
count--;
}
}
return major;
}
}
2014年12月29日星期一
[Leetcode] Majority Element
The solution is also available here:https://gist.github.com/pyemma/81269253375b3f9714e2
订阅:
博文评论 (Atom)
没有评论:
发表评论