题目描述
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
解题思路
- 从数组两头定义两个指针,相加后如果小于目标值则前一个指针往前移动一位。
class Solution {
public int[] twoSum(int[] nums, int target) {
int i = 0;
int j = nums.length - 1;
while (i < j) {
int add = nums[i] + nums[j];
if (add < target) {
i++;
} else if (add > target) {
j--;
} else {
return new int[]{nums[i], nums[j]};
}
}
return new int[0];
}
}
网友评论