Hash
Hash 【C++ 哈希表查找口诀】 想知道有没有 key? → 用 count: if (map.count(key)) 想查并用它的 value? → 用 find: if (map.find(key) != map.end()) 口诀: count 大于 0,就说明有 find 不等于 end,就说明找到了 两数之和 vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> hashtable; for (int i = 0; i < nums.size(); i++){ auto it = hashtable.find(target - nums[i]);//判断是否存在 if (it != hashtable.end()){ return {i, it->second}; } hashtable[nums[i]] = i;// 添加元素, 这里的添加顺序不可提前,因为我想做的是先查找,如果先添加会影响这一次查找 } return {}; }