一、题目
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。【力扣链接 】
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
二、示例
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
三、分析
这道【两数之和】力扣上第一题难度也是简单,是比较简单的一道题了。 只要在数组中找出两个数的和等于目标值,并返回数组下标就好,也就是每个数都要和其他的数进行一次相加。
四、实现
class Solution {
public int[] twoSum(int[] nums, int target) {
int[] result = new int[2];
for (int i = 0; i < nums.length - 1; i++) {
for (int j = i + 1; j < nums.length; j ++) {
if (nums[i] + nums[j] == target) {
result[0] = i;
result[1] = j;
}
}
}
return result;
}
}
进行嵌套循环,i的取值范围是 [0, nums.length - 1],由于遍历到最后一个数的时候,已经和前面的全部比较过了,因此是数组大小减1,j的取值范围是[i+1, nums.length], i前面的数已经和其他比较过了,所以j的取值是i+1到数组大小,然后进行嵌套遍历比较返回