1. 程式人生 > >面試題:和為S的兩個數

面試題:和為S的兩個數

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的兩個數