同样的思路双指针法,我发现排序数组分析一般都用这个方法
public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
ArrayList<Integer> res= new ArrayList<>();
int i = 0,j=array.length-1;
int ij=Integer.MAX_VALUE;
while(i<j){
int sumV = array[i]+array[j];
if(sumV>sum){
j--;
}else if(sumV<sum){
i++;
}else{
if(ij>i*j){
res.clear();
res.add(array[i]);
res.add(array[j]);
ij=i*j;
}
i++;
}
}
return res;
}
京公网安备 11010502036488号