提示是递增的,就从两头向中间逼近 还规定乘机最小,这个不用多虑,若a+b=sum,那么a和b越远乘积越小。这样就满足最先搜索到的组合,他俩的乘积就越小.
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
ArrayList<Integer> list = new ArrayList<>();
int left = 0;
int right=array.length-1;
while(left<right){
if(array[left] + array[right] == sum){
list.add(array[left]);
list.add(array[right]);
break;
}
else if (array[left] + array[right] > sum) right--;
else if (array[left] + array[right] < sum) left++;
}
return list;
}
}