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

題目描述

輸入一個遞增排序的數組和一個數字S,在數組中查找兩個數,使得他們的和正好是S,若是有多對數字的和等於S,輸出兩個數的乘積最小的。

輸出描述:

對應每一個測試案例,輸出兩個數,小的先輸出。
 1 import java.util.ArrayList;
 2 public class Solution {
 3     public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
 4         ArrayList<Integer> result = new ArrayList<Integer>();
 5         if(array==null||array.length<2)
 6             return result;
 7         int plow=0,phigh=array.length-1;
 8         while(phigh>plow){
 9             int cur=array[phigh]+array[plow];
10             if(cur==sum){
11                 result.add(array[plow]);
12                 result.add(array[phigh]);
13                 return result;
14             }else if(cur<sum){
15                 plow++;
16             }else{
17                 phigh--;
18             }
19         }
20         return result;
21     }
22 }
相關文章
相關標籤/搜索