题目:
leetcode169
给出一个size为n的数组,找出主要元素,即出现次数超过n/2次的元素
思路一:
用object统计出现重复元素的个数,然后遍历,找到次数大于n/2的
var majorityElement = function(nums) {
var obj={};
var res;
for(var i=0;i<nums.length;i++){
if(!obj[nums[i]]){
obj[nums[i]]=1;
}else{
obj[nums[i]]+=1;
}
}
for(var i in obj){
if (obj[i]>nums.length/2){
res=parseInt(i)
}
}
return res;
};
思路二:
有点看不懂。。
public class Solution {
public int majorityElement(int[] num) {
int major=num[0], count = 1;
for(int i=1; i<num.length;i++){
if(count==0){
count++;
major=num[i];
}else if(major==num[i]){
count++;
}else count--;
}
return major;
}
}