剑指offer — 和为S的两个数字

来源:互联网 发布:织梦云idc网站源码 编辑:程序博客网 时间:2024/05/22 17:25

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

解题思路:使用双指针的方式进行处理

java

import java.util.ArrayList;public class Solution {    public ArrayList<Integer> FindNumbersWithSum(int[] array,int sum) {        ArrayList<Integer> result = new ArrayList<>();        if (array == null || array.length == 0 || sum < 0) {            return result;        }        int left = 0;        int right = array.length - 1;int target = 0;        while (left < right) {            target = array[left] + array[right];            if (sum == target) {                result.add(array[left]);                result.add(array[right]);                break;            } else if (target < sum) {                left++;            } else {                right--;            }        }        return result;    }}


原创粉丝点击