思想
两个指针,一个i正序遍历 一个j倒叙遍历,如果相加小于target,i向后移,如果相加大于target
j向前移
public int[] twoSum(int[] numbers, int target) {
//先判断空情况
if (numbers == null) return null;
//两个指针,一个正序 一个倒叙遍历
int i = 0, j = numbers.length - 1;
//开始遍历
while (i < j) {
int sum = numbers[i] + numbers[j];
if (sum == target) {
return new int[]{i + 1, j + 1};
} else if (sum < target) {
i++;
} else {
j--;
}
}
return null;
}
该篇博客介绍了如何使用双指针法解决寻找数组中两个数之和等于目标值的问题。代码中,一个指针从数组开头正向遍历,另一个指针从数组末尾反向遍历。如果两数之和小于目标值,则正向指针后移;如果大于目标值,则反向指针前移。当找到匹配的数对时,返回它们的索引。这种方法提高了搜索效率,避免了多余的比较。

被折叠的 条评论
为什么被折叠?



