本文主要是介绍两数之和 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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!