和为s的两个数字
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
做法:递增数组,指针指向两端,从两端开始寻找即可
class Solution {
public int[] twoSum(int[] nums, int target) {
//递增排序数组,从两端开始找元素
int left = 0;
int right = nums.length-1;
while(left <= target){
if(nums[left] + nums[right] > target){
right--;
}else if(nums[left] + nums[right] < target){
left++;
}else{
//和为target的情况
return new int[]{nums[left],nums[right]};
}
}
return null;
}
}