劍指offer — 和為S的兩個數字
阿新 • • 發佈:2019-01-02
輸入一個遞增排序的陣列和一個數字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; } }