题目及要求:
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
提示:
2 <= nums.length <= 104
-109 <= nums[i] <= 109
-109 <= target <= 109
只会存在一个有效答案
原创代码:
class Solution {
public:
int one,two;
vector<int> twoSum(vector<int>& nums, int target)
{
for(int i=0;i<=nums.size()-2;i++)
{
for(int k=i+1;k<=nums.size()-1;k++)
{
one=nums[i];
two=nums[k];
if(one+two==target)
{
cout<<"["<<i<<","<<k<<"]";
nums.clear();
nums.insert(nums.begin(),k);
nums.insert(nums.begin(),i);
break;
}
}
}
return nums;
}
};
输出示例:
示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。
示例 2:
输入:nums = [3,2,4], target = 6
输出:[1,2]
示例 3:
输入:nums = [3,3], target = 6
输出:[0,1]
代码思路:
通过时间复杂度为O(N^2)的算法将满足两数之和为要求的的两个下标存入vector& nums中
反思所得:
通过这道题的解法我复习了C++ vector的用法(学习文章:https://blog.youkuaiyun.com/qinyuehong/article/details/92837359)
LeetCode链接:
https://leetcode-cn.com/problems/two-sum/