一、目录
二、前言
三、解题及测试
四、补充知识点
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9。
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
}
}
解题思路一:减法得出一个值后,在数组内寻找是否含有该数
int i,j,b;
vector<int> res;
for(i=0;i<nums.size();i++)
{
b=target-nums[i];
for(j=i+1;j<nums.size();j++)
{
if(nums[j]==b)
{
res.push_back(i);
res.push_back(j);
return res;
}
}
}
return res;
解题思路二:两层for循环嵌套,两个数相加等于target
class Solution {
public:
vector<int> twoSum(vector<int>& nums, int target) {
int i,j;
for(i=0;i<nums.size()-1;i++)
{
for(j=i+1;j<nums.size();j++)
{
if(nums[i]+nums[j]==target)
{
return {i,j};
}
}
}
return {i,j};
};
};
(一).vector:
1.vector说明:
向量vector是一种对象实体,能够容纳许多其他类型相同的元素,因此,又称为容器。可以理解为动态数组,是封装好了的类。
2.vector初始化:
方法一:vector<int>a(10),
定义一个具有10个整形元素的向量(尖括号为元素类型名)
方法二:vector<int>a(10,1), 定义一个具有10个整形元素的向量,且给出的每一个元素初值为1
方法三:vector<int>a(b), 将向量b赋值给a
原文:https://www.cnblogs.com/HanLongfeng/p/11831822.html