LeetCode - 001 两数字和

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiangxianghehe/article/details/81295396

给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。

示例:


给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]

答案:

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        map <int,int> m;
        vector<int> res;

        for(int i = 0;i<nums.size();++i)
        {
            m[nums[i]] = i;

        }
        for(int i=0;i<nums.size();++i)
        {
            int t  = target - nums[i];
            if(m.find(t)!=m.end()&&m[t]!=i)
            {
                res.push_back(i);
                res.push_back(m[t]);
                break;
            }
        }
        return res;




    }
};

猜你喜欢

转载自blog.csdn.net/xiangxianghehe/article/details/81295396