最外层的两个数和一样的时候你他们的乘积是最小的

import java.util.ArrayList;
public class Solution {
    public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
        ArrayList<Integer> list  = new ArrayList<Integer>();
//用两层循环,第一从前往后循环数组,第二从后往前循环数组,
        int i=0;
        int j= array.length-1;
        while(i<j){
    //判断条件如果满足条件跳出循环
                if(sum == array[i]+array[j]){
                     list.add(array[i]);
                     list.add(array[j]);
                    break;
//条件2如果不满足跳出循环条件的时候,判断是大了还是小了;
//如果是小了那么就是前面的数小了,如果在移动后面一个你数组的话这两个数的和就会更小
//只能移动前一个
//反之,如果是大了则移动后一个,才会让两个数的和变小
                }else if(array[i]+array[j]<sum){
                    i++;
                }else{
                    j--;
            }
        }  
 return list ;
}
}