思路:
創(chuàng)建兩個指針,初始位置分別指向數(shù)組的頭部和尾部蒋伦,把對應(yīng)位置的數(shù)字求和弓摘,比較和s的大小,如果相等凉敲,即為所求衣盾,如果大于s,則把尾指針向前移動,如果小于s,則把頭指針向前移爷抓,知道找到和為s的兩個數(shù)字的數(shù)字為止势决。
public class Solution {
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
ArrayList<Integer> list=new ArrayList<>();
if(array==null||array.length<2)
return list;
int head=0;
int tail=array.length-1;
while(head<tail){
int s=array[head]+array[tail];
if(sum==s){
list.add(array[head]);
list.add(array[tail]);
break;
}else if(s>sum){
tail--;
}else
head++;
}
return list;
}
}