使用map:單詞計數程式

花開 流年發表於2020-10-27

一個經典的使用關聯陣列的例子是單詞計數程式
在這裡插入圖片描述在這裡插入圖片描述向map中新增元素
方法一:m[nums[i]] = i;

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        unordered_map<int,int> m;        
        for(int i = 0; i < nums.size(); i++)
        {
            if(m.find(target-nums[i]) != m.end())  return {m[target-nums[i]],i};        
   //  m[target-nums[i]]為已經加入map的元素的索引,所以小於本輪迴圈中的i,放在前面
            m[nums[i]] = i;       //向map中新增元素
        }
        return {};
    }
};

兩數之和LeetCode:c++ 三種方法 -z
方法二:map.insert(nums[i], i);

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        std::unordered_map <int,int> map;
        for(int i = 0; i < nums.size(); i++) {
            auto iter = map.find(target - nums[i]);
            if(iter != map.end()) {
                return {iter->second, i};
                break;
            }
            map.insert(nums[i], i);
        }
        return {};
    }
};

程式碼隨筆錄公眾號:雜湊表:map等候多時了

相關文章