难度:eassy
题目描述
示例
解法1:消消乐
题目的硬性要求,一定存在"多数元素"。所以直接消消乐,设置一个目标值k,和他的投票数vote,拿当前元素和前一个元素做比较,如果和前一个相同则vote++,如果不同则vote--。vote减少为0时,更新当前元素为目标值。
int majorityElement(int* nums, int numsSize) {
// 边界相关
if(numsSize == 1) return nums[0];
//记录下每个元素出现的次数
int i, j;
int k=nums[0], vote=1; // 投票法
for(i = 1; i < numsSize; i ++){
if(nums[i] != k){
vote --;
if(vote == 0){
k = nums[i];
vote ++;
}
}
else
vote ++;
}
return k;
}
时间复杂度: