题意:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
解题思路
解法1:--双指针方法
1.分析题意,数组已排序,所以声明两个指针,一个指向数组头,一个指向数组尾
2.从两边向中间遍历,如果和大于target,则j--,如果和小于target,则i++
解题遇到的问题
无
后续需要总结学习的知识点
无
##解法1
class Solution {
public int[] twoSum(int[] nums, int target) {
// 分析题意,数组已排序,所以声明两个指针,一个指向数组头,一个指向数组尾
int i = 0, j = nums.length - 1;
while (i < j) {
// 从两边向中间遍历,如果和大于target,则j--,如果和小于target,则i++
if (nums[i] + nums[j] < target) {
i++;
} else if (nums[i] + nums[j] > target) {
j--;
} else {
return new int[]{nums[i], nums[j]};
}
}
return null;
}
}
网友评论