寻找数组中超过一半的数字,我们可以用抵消来实现,出现相同的数字时加一,反之则抵消减一;
因为数字超过数组的一半,所以一直相互抵消到最后,留下来的就是该数字。
int majorityElement(int* nums, int numsSize)
{
int count=0,temp=0;
for(int i=0;i<numsSize;i++)
{
if(count==0)//第一次开始或者被抵消完了,重新给temp赋值
{
temp=nums[i];
count++;
}
else if(nums[i]==temp)
count++;
else
count--;
}
return temp;
}
标签:数字,一半,超过,int,抵消,数组 From: https://www.cnblogs.com/dubai-1314/p/16802918.html