思路分析:参考B站视频:
https://www.bilibili.com/video/av44699700?from=search&seid=5516358605453804509
自己在VS2019环境下编译运行,可以更清楚掌握整个程序的运行机制。'暴力法'C++实现代码如下:
#include<iostream> #include<vector> using namespace std; class Solution { public: vector<int> twoSum(vector<int>& nums, int target) {//{1} vector<int> result; //{2} for (int i = 0; i < nums.size(); ++i) //{3} { for (int j = i + 1; j < nums.size()-1; ++j) { if (nums[i] + nums[j] == target) { result.push_back(i); //{4} result.push_back(j); } } } return result; //(5) } }; int main() { Solution obj; //定义一个类对象,用来访问类成员 //输入 vector<int> nums = {2,7,11,15}; int target = 9; //定义一个vector接收return的vector vector<int> res; res = obj.twoSum(nums,target); //for 循环控制输出res元素 for (int j = 0; j < res.size(); j++) { cout << res.at(j) << ' '; //at()方法可以检擦索引是否越界 } return 0; }对代码中的编号行进行说明:
(1)vector<int> 表示返回值类型是个vector,vector中元素类型为int型;twosum为函数名,接收两个参数。
(2)定义一个vector型变量result,用来存放返回值;
(3)vector.size() 用来统计vector中的元素个数;
(4)vector.pushback() 用来将目标值添加到vector中;
(5)在C++中,假设在正常情况下返回期望的值,在不满足正常条件的时候也要返回一个值才可以编译通过,属于语法问题。
