Java教程

两数之和 twoSum

本文主要是介绍两数之和 twoSum,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
 std::vector<int> twoSum(std::vector<int>& nums, int target)
    {
        for (int i=0;i<nums.size();i++)
        {
            for (int j = i+1; j<nums.size();j++)
            {
                if (nums[i] + nums[j] == target)
                {
                    return std::vector<int>{i, nums[i], j, nums[j]};
                }
            }
        }
    }


 std::vector<int> twoSum2(std::vector<int>& nums, int target){
        std::map<int, int> numMap;
        for (int i=0;i<nums.size();i++)
        {
            int num = target - nums[i];
            if (numMap.count(num)){
                return {numMap[num], i};    // 先入的下标更小
            }
            numMap[nums[i]] = i;
        }
        return {};
    }
这篇关于两数之和 twoSum的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!