哈希表

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

时间复杂度:O(n)
空间复杂度:O(n)
拓展:三数之和,四数之和