本篇博客介绍如何找到两数之和。获取相加的两个数获取最终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]);}elsecontinue;}}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;}
如果觉得《leetcode刷题:2.两数之和》对你有帮助,请点赞、收藏,并留下你的观点哦!