题目原址:https://leetcode.com/problems/two-sum/?tab=Description
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
题解:题目非常简单,取出向量 nums 中的一个数a,在数组中查找目标‘target-a’ 是否存在。存在则直接找到目标[a,target-a](按题目要求,不考虑多解),否则取出 nums 中下一个数,直到找到目标为止。
需要注意的是,题中要求每个数字不考虑重复使用,所以我们遍历的情况下要避免重复取同一个数。并且我们需要对找到的两个数按大小做一个排序,输出 [小数序号,大数序号]。
代码片段:
{
public:
vector<int> twoSum(vector<int>& nums, int target)
{
vector<int> output;
int temp;
for (int i = 0; i < nums.size(); i++)
{
for (int j = 0; j < nums.size(); j++)
{
if (nums[j] == target - nums[i]&& i!=j)
{
temp = i;
if (temp > j)
{
i = j; j = temp;
}
output = { i,j };
return output;
}
}
}
}
}