输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
注意:分别从左、右取值,第一对和为s,它们的乘积最小。
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
ArrayList<Integer> list = new ArrayList<Integer>() ;
if(array.length < 2 || array == null)
return list ;
int len = array.length ;
int begin = 0;
int end = len - 1 ;
while(begin < end && begin < len-1 && end > 0){
if(array[begin] + array[end] == sum){
list.add(array[begin]) ;
list.add(array[end]) ;
return list ;
}
if(array[begin] + array[end] > sum)
end-- ;
if(array[begin] + array[end] < sum)
begin++ ;
}
return list ;
}