给定一个按照的的排列的有序数组,找到两个数使得他们相加的只和等于目标数目。
函数的应该返回的这两个下表数值index1和index2.其中index1必须小于index2.
说明:
返回的下表的数值的(index1和index2)不是从零开㐓始的。
你可以的假设的每个输入的只对应的一个唯一的答案,而且你的不可以重复的使用相同的元素。
实际的例子:
numers=[2,7,11,15],target 的方法。
public int[] twosum(int[] numbers,int target){
int i=0;
int j=numbers.length-1;
while(i<j){
if(numbers[i]+numbers[j]>target){
j--;
}else if(){numbers[i]+numbers[j]<target){
i++;
}else{
return new int[]{i+1,j+1};
}
return new int[] {-1,-1};
}
}
本文介绍了一种解决有序数组中寻找两个数使它们的和等于目标值的问题的方法。通过双指针技巧,该算法能在O(n)的时间复杂度内找到符合条件的两个数的下标,且下标值遵循从小到大的顺序。
2127

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



