数组中出现次数超过一半的数字(简单)
2020年9月3日
题目来源:力扣
解题
这道题与多数元素一样,可参考
排序 出现次数超过一半,那排序后的中位数肯定是它
class Solution {
public int majorityElement(int[] nums
) {
Arrays
.sort(nums
);
return nums
[nums
.length
/2];
}
}
摩尔投票法 因为出现次数超过一半,支持这个数的肯定会大于0
class Solution {
public int majorityElement(int[] nums
) {
int x
=0,votes
=0;
for(int num
:nums
){
if(votes
==0) x
=num
;
votes
+=num
==x
?1:-1;
}
return x
;
}
}
转载请注明原文地址:https://tech.qufami.com/read-5379.html