LeetCode twoSum

来源:互联网 发布:淘宝总公司投诉电话 编辑:程序博客网 时间:2024/05/01 14:47
class Solution {
public:
    vector<int> twoSum(vector<int> &numbers, int target) {
        unordered_map<int,queue<int>> myMap;
        vector<int> result; 
        for(int i = 0; i < numbers.size(); i++)
            myMap[numbers[i]].push(i+1); 
            
        for(int i = 0; i < numbers.size(); i++) {
            int first = myMap[numbers[i]].front();
            myMap[numbers[i]].pop();
            int value = target - numbers[i];
            if(myMap.find(value) != myMap.end() && myMap[value].size()) {
                int second = myMap[value].front();
                if(second <= first) {
                    int temp;
                    temp = first;
                    first = second;
                    second = temp;
                }
                result.push_back(first);
                result.push_back(second);
                break; 
            }
            
        }
        return result; 
    }
};
0 0
原创粉丝点击