題目描述
輸入一個(gè)遞增排序的數(shù)組和一個(gè)數(shù)字S,在數(shù)組中查找兩個(gè)數(shù)画机,是的他們的和正好是S勤篮,如果有多對數(shù)字的和等于S,輸出兩個(gè)數(shù)的乘積最小的色罚。
輸出描述:
對應(yīng)每個(gè)測試案例碰缔,輸出兩個(gè)數(shù),小的先輸出戳护。
import java.util.ArrayList;
public class Solution {
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
ArrayList<Integer> ret = new ArrayList<>();
int smallest = 0x7fff;
int i=0;
int j=array.length-1;
while(i<j){
int tmp = array[i]+array[j];
if(tmp<sum){
i++;
}else if(tmp>sum){
j--;
}else{
int k = array[i]*array[j];
if(k<smallest){
if(ret.size()!=0){
ret.set(0,array[i]);
ret.set(1,array[j]);
}else{
ret.add(0,array[i]);
ret.add(1,array[j]);
}
smallest = k;
}
i++;
j--;
}
}
return ret;
}
}