描述
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
返回值描述:
对应每个测试案例,输出两个数,小的先输出。
示例1
输入:
[1,2,4,7,11,15],15
复制返回值:
[4,11]
public class Jz42_FindNumbersWithSum {
public ArrayList<Integer> FindNumbersWithSum(int[] array, int sum) {
ArrayList<Integer> ans = new ArrayList<>();
int i = 0;
int j = array.length - 1;
while (i < j) {
int curSum = array[i] + array[j];
if(curSum == sum){
ans.add(array[i]);
ans.add(array[j]);
return ans;
}else if(curSum < sum){
i++;
}else{
j--;
}
}
return ans;
}
}