题目
题目
找出出现的次数超过n/2的元素,我们每次都删除不同的两个元素,最后剩下的肯定就是了,但是有可能整个数组中都没有符合添加的元素,这样的话,我们就需要在进行判断一次
代码实现
class Solution {
public int majorityElement(int[] nums) {
int count=0;
int host=0;
for(int i=0;i<nums.length;i++)
{
if(count==0)
{
host=nums[i];
count=1;
}else if(host==nums[i])
{
count++;
}else if(host!=nums[i])
{
count--;
}
}
count=0;
for(int i=0;i<nums.length;i++)
{
if(nums[i]==host)
{
count++;
}
}
return count>nums.length/2?host:-1;
}
}
京公网安备 11010502036488号