思路:
因为题目说一定存在多数元素,就说明一定有一个数的个数多于n/2
将数组采用冒泡从小到大排序,最中间的那个元素一定是多数元素 (因为在大小排好序后,中位数也一定是众数)
答案:
int majorityElement(int* nums, int numsSize)
{
int i=0,j=0;
for(i=0;i<numsSize-1;i++) //冒泡排序
{
int flag=1;
for(j=1;j<numsSize-i;j++)
{
if(nums[j-1]>nums[j])
{
int tmp=nums[j];
nums[j]=nums[j-1];
nums[j-1]=tmp;
flag=0;
}
}
if(flag)
{
break;
}
}
return nums[numsSize/2]; //返回中位数
}