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中。