23/1/18-LeetCode 01:two sum

LeetCode 01: two sum

orz太久没写代码了真的,这种感觉太陌生...

思路

  • 利用哈希表
  • 从0开始遍历,判断(target-array[i])在哈希表里面是否能找到
    • 找得到,return;
    • 找不到,把array[i]添加进哈希表中

新内容

  1. auto
  2. unordered_map
  3. iterator

实现

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        int len = nums.size();
        //vector<int> ans; 返回的时候直接返回{}即可
        unordered_map<int, int> hashmap;
//map是有序的 unordered_map是无序的 内部实现哈希表 查找问题中更高效
        for(int i = 0; i < len; ++i)
        {
            auto now = hashmap.find(target - nums[i]);
            //2 number here. can't be self addition
            if(now != hashmap.end()){
                return {now->second, i};
            }
            hashmap[nums[i]] = i;
        }
        return {};
    }
};

2023-01-18 21:21:14 星期三

posted @ 2023-01-19 15:20  地尽头  阅读(11)  评论(0)    收藏  举报