1. 题目
题目链接:https://leetcode-cn.com/problems/two-sum/
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
2. 解题
#include <string.h>
#include <vector>
#include <iostream>
using namespace std;
class Solution
{
public:
vector<int> twoSum(vector<int>& nums, int target)
{
int i,j;
vector<int> ans;
for(i = 0; i < nums.size()-1; ++i)
{
for(j = i+1; j < nums.size(); ++j)
{
if(nums[i]+nums[j] == target)
{
ans.push_back(i);
ans.push_back(j);
return ans;
}
}
}
return ans;
}
};
int main()
{
// vector<int>obj;//创建一个向量存储容器 int
// for(int i=0;i<10;i++) // push_back(elem)在数组最后添加数据
// {
// obj.push_back(i);
// cout<<obj[i]<<",";
// }
//
// for(int i=0;i<5;i++)//去掉数组最后一个数据
// {
// obj.pop_back();
// }
//
// cout<<"\n"<<endl;
//
// for(int i=0;i<obj.size();i++)//size()容器中实际数据个数
// {
// cout<<obj[i]<<",";
// }
cout<<"\n\n\n\n"<<endl;
cout<<"下面是调用的结果"<<endl;
vector<int>obj02;//创建一个向量存储容器 int
vector<int>obj03;//创建一个向量存储容器 int
obj02.push_back(2);
obj02.push_back(7);
obj02.push_back(11);
obj02.push_back(15);
Solution s;
obj03 = s.twoSum(obj02,9);
for(int i=0;i<obj03.size();i++)//size()容器中实际数据个数
{
cout<<obj03[i]<<",";
}
return 0;
}