方法一:排序取中间的那个数就行O(n*log(n));
int cmp ( const void *a , const void *b){ return *(int *)a - *(int *)b; } int majorityElement(int num[], int n) { qsort(num,n,sizeof(num[0]),cmp); return num[n/2]; }
方法二:编程之美上好像有这个解法
int majorityElement(int num[], int n) { int count = 0,result; for(int i = 0 ; i < n ; i++){ if(count == 0 || num[i] == result) { result = num[i]; count++; }else count--; } return result; }