您的位置:首页 > 其它

Majority Element

2015-07-14 13:43 330 查看
题目:

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.

Simple but nlog(n) time complexity

public int majorityElement(int[] num) {
if (num.length == 1) {
return num[0];
}

Arrays.sort(num);
return num[num.length / 2];
}


Linear Time Majority Vote Algorithm 很高级的样子

public int majorityElement(int[] nums) {
int candidate= 0, count = 0;

for(int i = 0; i<nums.length; i++ ) {
if(count == 0){
candidate= nums[ i ];
count = 1;
}else if(candidate == nums[i]){
count++;
}else{
count--;
}
}

return candidate;
}


reference:http://www.programcreek.com/2014/02/leetcode-majority-element-java/
http://www.cs.utexas.edu/~moore/best-ideas/mjrty/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: