class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @param target int整型 
     * @return int整型vector
     */
    vector<int> twoSum(vector<int>& nums, int target) {
        // write code here
        map<int,int> val_to_id;
        vector<int> id_to_val;
        for(int i=0;i<nums.size();i++){
        	val_to_id[nums[i]]=i+1;
        	id_to_val[i+1]=nums[i];
		}
		vector<int> res;
		for(int i=0;i<nums.size();i++){
			int tp=target-id_to_val[i+1];
			map<int,int>::iterator it=val_to_id.find(tp);
			if(it->second!=0){
				res.push_back(i+1);
				res.push_back(val_to_id[tp]);
				return res;
			}
		}
    }
};