169. 多数元素

60 阅读1分钟

169. 多数元素 - 力扣(LeetCode) 第一个想到的是map

哈希

class Solution {
public:
    int majorityElement(vector<int>& nums) {

    int n=nums.size()>>1;
     unordered_map<int,int>m;

     for(int i=0;i<nums.size();i++)
     {
         m[nums[i]]++;
     }
     
     for(auto ch:m)
     {
           if(ch.second>n)return ch.first;
     }
   

     return -1;
    }
};

m[nums[i]]++; 的作用是将 nums[i] 作为键,然后将其对应的值加1。如果 nums[i] 已经存在于 m 中,那么它对应的值就会加1;如果 nums[i] 不存在于 m 中,那么会创建一个新的键值对,键为 nums[i],值为1。

这行代码的作用是统计 nums 数组中每个元素出现的次数,并将其存储在 m 这个map中。