1.
将数组中的元素分为两类:多数元素和非多数元素。将多数元素与非多数元素逐一抵消,最后剩下的就是多数元素了。
int majorityElement(int* nums, int numsSize){
int snum=nums[0],nums1=1;
for(int i=1;i<numsSize;i++){
if(nums[i]!=snum){
if(nums1==0) snum=nums[i],nums1++;
else nums1--;
}
else nums1++;
}
return snum;
}
2.
int cmp(int* a, int* b)
{
return *a - *b;
}
int majorityElement(int* nums, int numsSize){
qsort(nums, numsSize, sizeof(nums[0]), cmp);
return nums[(numsSize - 1) / 2];
}