哈希表
struct hashTable{
int key;
int val;
UT_hash_handle hh;
};
struct hashTable *hashtable = NULL ;
struct hashTable * Find(int ikey){
struct hashTable * p;
HASH_FIND_INT(hashtable, &ikey, p);
return p;
}
int Insert(int ikey){
struct hashTable *p = Find(ikey) ;
if(p==NULL){
p = (struct hashTable *) malloc(sizeof(struct hashTable));
p->key = ikey;
p->val = 1;
HASH_ADD_INT(hashtable, key, p);
return 1;
}
else{
p->val += 1;
return p->val;
}
}
int majorityElement(int* nums, int numsSize){
for(int i=0;i<numsSize;i++){
int n = Insert(nums[i]); //返回nums[i] 出现的次数
if(n>numsSize/2) return nums[i];
}
return 0;
}