#include<vector>
#include<map>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @param target int整型 
     * @return int整型vector
     */
    vector<int> twoSum(vector<int>& nums, int target) {
        // write code here
       unordered_map<int,int>m;
       vector<int>returnv;
       for(int i=0;i<nums.size();i++){
         int targetkey=target-nums[i];
           if(m.count(targetkey)!=1){
                 m.insert(make_pair(nums[i],i+1));
           }
           else if(m.count(targetkey)==1){
                returnv.push_back(m[targetkey]);
                returnv.push_back(i+1);
                return returnv; 
           }
       }
       return returnv;
    }
};

// #include<vector>//暴力循环超时
// class Solution {
// public:
//     /**
//      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
//      *
//      * 
//      * @param nums int整型vector 
//      * @param target int整型 
//      * @return int整型vector
//      */
//     vector<int> twoSum(vector<int>& nums, int target) {
//         // write code here
//         vector<int>returnv;
//         for(int i=0;i<nums.size();i++){
//             for(int j=0;j<nums.size();j++){
//                 if(nums[i]+nums[j]==target){
//                     returnv.push_back(i+1);
//                     returnv.push_back(j+1);
//                     return returnv;
//                 }
//             }
//         }
//         return returnv;
//     }
// };