和为S的两个数字

和为S的两个数字

输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

代码实现

package 剑指offer;

import java.util.ArrayList;

/**
 * @author WangXiaoeZhe
 * @Date: Created in 2019/11/22 16:09
 * @description:
 */

public class Main9 {
    public static void main(String[] args) {

    }

    public ArrayList<Integer> FindNumbersWithSum(int[] arrayint sum) {
        ArrayList<Integer>list=new ArrayList<>();
        if (array == null || array.length < 2) {
            return list;
        }
        int i = 0, j = array.length - 1;
        while (i < j) {
            if (array[i] + array[j] == sum) {
                list.add(array[i]);
                list.add(array[j]);
            } else if (array[i] + array[j] > sum) {
                j--;
            }else {
                i++;
            }
        }
        return list;
    }
}
posted @ 2019-11-22 16:18  π。  阅读(128)  评论(0编辑  收藏  举报