面試題:和為S的兩個數
阿新 • • 發佈:2018-08-21
new pre 個數 color code 查找 ger 測試案例 兩個
題目描述:輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,使得他們的和正好是S,如果有多對數字的和等於S,輸出兩個數的乘積最小的。
輸出描述:對應每個測試案例,輸出兩個數,小的先輸出。
方法1:因為是排序的數組,借鑒快排
import java.util.ArrayList; public class Solution { public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) { ArrayList<Integer> list =new ArrayList<>();if(array==null||array.length<2) return list; int i=0; int j=array.length-1; while(i<j){ if(array[i]+array[j]>sum){ j--; } if(array[i]+array[j]<sum){ i++; } if(array[i]+array[j]==sum){ list.add(array[i]); list.add(array[j]);return list; } } return list; } }
面試題:和為S的兩個數