给定一个大小n的数组,求出现次数大于⌊ n/2 ⌋的元素:假定数组总是存在而且这样的元素总是存在:
int com(const void *s1,const void *s2){
int *p1=(int*)s1;
int *p2=(int *)s2;
return *p1-*p2;
}
int majorityElement(int* nums, int numsSize) {
qsort(nums,numsSize,sizeof(int),com);//按小到大对数组排序
int k=1;
for(int i=0;i<numsSize-1;i++)
{ if(nums[i]==nums[i+1]){k++;if(k>numsSize/2)return nums[i];else continue;}//如果连续相等
else k=1;}
return nums[0];
}