我用了O(nlogn)的方法。
或者可以用Hashmap记录出现次数。
据说有更好的方法叫投票法。
//先sort,再遍历,遇到个数大于n了,返回它
public int majorityElement(int[] nums) {
if (nums.length == 1) return nums[0];
Arrays.sort(nums);
int count = 1;
for (int i = 1; i < nums.length; i++) {
if (nums[i] != nums[i - 1]) {
count = 1;
} else {
count++;
}
if (count > nums.length / 2) return nums[i];
}
return -1;
}
网友评论