(一)题目
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。
示例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]
提示:
2 ≤ nums.length ≤ 103
-109 ≤ nums[i] ≤ 109
-109 ≤ target ≤ 109
只会存在一个有效答案
(二)解题代码
VS中编辑代码如下(共三个文件,1个头文件,2个源文件)
头文件 Solution.h
#include<vector>
using namespace std;
class Solution
{
public:
vector<int> twoSum(vector<int>& nums, int target);
};
源文件 Solution.cpp
#include "Solution.h"
using namespace std;
vector<int> Solution::twoSum(vector<int>& nums, int target) {
vector<int> result;
for (int m = 0; m != nums.size(); m++)
for (int n = m+1; n != nums.size(); n++)
if (nums[m] + nums[n] == target) {
result.push_back(m);
result.push_back(n);
return result;
}
}
源文件 main.cpp
#include <iostream>
#include"Solution.h"
int main()
{
Solution test;
vector<int> temp{ 1,2,3,4,5 };
vector<int> result = test.twoSum(temp, 7);
auto a1 = result.begin();
auto a2 = result.end();
while (a1 != a2) {
cout << *a1 << " ";
a1++;
}
return 0;
}
(三)代码注解
菜鸡算法,暴力搜索