1. 程式人生 > >劍指offer — 和為S的兩個數字

劍指offer — 和為S的兩個數字

輸入一個遞增排序的陣列和一個數字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;
    }
}