给定一个整数数组 nums
和一个目标值 target
,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
class Solution {
public int[] twoSum(int[] nums, int target) {
for (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[j] == target - nums[i]) {
return new int[] { i, j };
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
}
思路:暴力法很简单,遍历每个元素 x,并查找是否存在一个值与 target - x相等的目标元素。
查找过程其实还是双指针,依次找i元素后面有没有和i元素相加等于target的元素,所以每次遍历都是快指针j是从j=i+1开始(即i后面开始的元素)