利用hash表来查找target-numbers[i]// 时间复杂度为O(n)

class Solution {
public:
    /**
     * 
     * @param numbers int整型vector 
     * @param target int整型 
     * @return int整型vector
     */
    vector<int> twoSum(vector<int>& numbers, int target) {
        int n = numbers.size();
        vector<int> res;
        unordered_map<int, int > hash;
        for(int i = 0; i < n; i++) {
            int x = target - numbers[i]; // 利用hash寻找与当前元素相加等于target的数
            if(hash.find(x) == hash.end()){
                hash[numbers[i]] = i; // 没有找到当前匹配的元素,将它hash表中
            }else{
                res.push_back(hash[x] + 1);
                res.push_back(i + 1);
                break;
            }
        }
        return res;
    }
};