天天看点

LeetCode题组:第169题-多数元素

1.题目

难度:

简单

给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例 1:

输入: [3,2,3]

输出: 3

示例 2:

输入: [2,2,1,1,1,2,2]

输出: 2

2.我的解答

#include<stdio.h>
int majorityElement(int* nums, int numsSize);
int majorityElement(int* nums, int numsSize){
    //标志某元素个数是否多余半数元素
    int flag=0;
    for(int i=0;i<numsSize;i++){
        flag=0;
        if(nums[i]){
            flag++;
            for(int j=i+1;j<numsSize;j++){
            	//统计相同数字个数,并将统计过的数字置空 
                if(nums[i]==nums[j]){
                    flag++;
                    nums[j]=NULL;
                }
                else flag--;
            }
        }
        if(flag>0) return nums[i];
    }
    return 0;
}

int main(){
	int nums[7] = {-1,100,2,100,100,4,100};
	printf("%d",majorityElement(nums,7));
	return 0;
}            

复制