leetcode 1 两数之和

地址:https://leetcode-cn.com/problems/two-sum/
大意:给定一个整数数组和一个目标值,在该数组中找出和为目标值的两个整数,并返回两个整数的数组下标

/**
  * 使用哈希表把数组信息存入,然后循环找到符合要求的值
  * 时间复杂度O(n)
  */
class Solution {
public:
    vector twoSum(vector& nums, int target) {
        unordered_map mp;
        for(int i = 0 ; i < nums.size() ; i ++){
            mp[nums[i]] = i;
        }
        for(int i = 0 ; i < nums.size() ; i ++){
            if(mp.find(target-nums[i]) != mp.end()){
                if(i != mp[target-nums[i]]){
                    vector v;
                    v.push_back(i);
                    v.push_back(mp[target-nums[i]]);
                    return v;
                }
            }
        }
        return nums;
    }
};

你可能感兴趣的:(leetcode 1 两数之和)