输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
ArrayList<Integer> result = new ArrayList<Integer>();
if(array.length < 2) return result ;
int small = 0;
int big = array.length - 1;
int resultSmall = 0;
int resultBig = 0;
boolean isFind = false;
while(small < big){
if(array[small] + array[big] < sum) ++small;
else if(array[small] + array[big] > sum) --big;
else{
resultSmall = small;
resultBig = big;
isFind = true;
break;
}
}
if(!isFind) return result;
result.add(array[resultSmall]);
result.add(array[resultBig]);
return result;
}
}