1.题目
2.解法
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
ArrayList<Integer> aList = new ArrayList<>();
if(array == null || array.length < 2){
return aList;
}
int i = 0;
int j = array.length - 1;
long add = 0l;
while(i < j){
add = array[i] + array[j];
// 最外围的乘积最小
if(add == sum){
aList.add(array[i]);
aList.add(array[j]);
return aList;
}else if(add > sum){
--j;
}else{
++i;
}
}
return aList;
}
}
时间复杂度为O(n),空间复杂度为O(1)