169. 多数元素
原题
java
class Solution {
public int majorityElement(int[] nums) {
if(nums.length==1){
return nums[0];
}
//数组排序
Arrays.sort(nums);
//统计出现最多的次数
int count = 0;
//保存结果
int res = nums[0];
//指向当前元素
int i =0;
//指向当前元素的下一个元素
int j=i+1;
while(j<nums.length){
//如果不相等,则计算出现次数
if(nums[i]!=nums[j]){
if(count<j-i){
count = j-i;
res =nums[i];
i=j;
j++;
}
}
j++;
}
//到这,判断最后一组数是否相等(因为在while循环里不能保证最后一个元素相等的判断)
//若最后一个元素和nums[i]相等,并且出现次数大于count
if(count<j-i&&nums[i]==nums[j-1]){
res =nums[i];
}
return res;
}
}