/** * 输入一个已经按照升序排列的有序数组nums和一个目标值target,找到两个数,使得他们的和=target,并返回这两个数的索引 * 左右指针 */
public class Test6 {
public static void main(String[] args) {
int[] nums = new int[]{ 2,7,11,15};
int target = 13;
for (int i : calc(nums, target)) {
System.out.println(i);
}
}
static int[] calc(int[] nums, int target) {
int left = 0;
int right = nums.length - 1;
while (left < right) {
int rs = nums[left] + nums[right];
if (rs == target) {
return new int[]{ left, right};
} else if (rs < target) {
left++;
} else {
right--;
}
}
return new int[]{ -1, -1};
}
}
还没有评论,来说两句吧...