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.
求众数,一个数组中某个元素的个数超过了数组个数的一半,返回该元素。
public class Solution {
public int majorityElement(int[] nums) {
if (nums.length == 1) {
return nums[0];
}
Arrays.sort(nums);
int mostNum = nums[0];//先假设第一个元素的个数最多
int count = 1;
for (int i = 1; i < nums.length; i++) {
if (nums[i] == mostNum) {
count++;
if (count > nums.length / 2) {
return nums[i];
}
}else {
mostNum = nums[i];//从不相等的元素开始重新和后面对比
count = 1;
}
}
return 0;
}
}