本篇博客介绍如何找到两数之和。获取相加的两个数获取最终target的方法。
先看如下图:
我们很容易想到暴力解法。即两次循环获取结果,第一次循环循环黑圈,我们先假定第一个黑圈中1,是我们要的数,然后接下来第二次循环遍历红线上的数,看看哪个数和黑圈中的1相加是我们想要的红线上的数。以此类推。
如下代码:
#include <iostream>
#include <vector>
using namespace std;
class Solution
{
public:
vector<int> twoSum(vector<int>& nums, int target)
{
vector<int> v;
for(int i = 0; i< nums.size(); i++)
{
for(int j = nums.size()-1; j> i; j--)
{
if((target-nums[i]) == nums[j])
{
v.push_back(nums[i]);
v.push_back(nums[j]);
}
else
continue;
}
}
return v;
}
};
int main()
{
Solution way;
vector<int> v={1,2,3,4,5};
vector<int> resultV = way.twoSum(v,4);
cout <<"resultV.size"<<resultV.size()<<endl;
vector<int>::iterator i;
for(i=resultV.begin();i!=resultV.end();i++)
{
cout <<"resultV值:"<<*i<<endl;
}
return 0;
}