同样的思路双指针法,我发现排序数组分析一般都用这个方法
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; }