import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
int low=0,high=array.length-1;
ArrayList<Integer> arr=new ArrayList<Integer>();
while(low<high)
{
if(array[low]+array[high]==sum) //如果相等,则加入表中返回
{
arr.add(array[low]);
arr.add(array[high]);
return arr;
}
else if(array[low]+array[high]>sum)//如果大了,则high小一点,array[high]的值就小一点 {
high--;
}else{ //如果小了,则low大一点,array[low]的值就大一点
low++;
}
}
return arr;
}
}
使用双指针 low 指向表头,high 指向表尾,如果表头 表尾两元素之和大了,则high--,如果小了则low++ ;值到两到两元素之和等于sum