題目:
輸入一個遞增排序的數組和一個數字 s。
在數組中查找兩個數,使得它們的和正好是 s。
如果有多對數字的和等於 s,輸出任意一對即可。
解答:
1 public class Solution { 2 3 public static void main(String[] args) { 4 int[] data = {1,2,4,7,11,15}; 5 System.out.println(findNumberWithSum(data, 15)); 6 } 7 8 private static boolean findNumberWithSum(int[] data, int sum) { 9 boolean found = false; 10 if(data == null) { 11 return found; 12 } 13 14 int num1 = 0; 15 int num2 = 0; 16 17 int start = 0; 18 int end = data.length-1; 19 while(start < end) { 20 int curSum = data[start] + data[end]; 21 if(curSum == sum) { 22 num1 = data[start]; 23 num2 = data[end]; 24 found = true; 25 break; 26 } else if(curSum > sum) { 27 end--; 28 } else { 29 start++; 30 } 31 } 32 33 System.out.println(num1); 34 System.out.println(num2); 35 36 return found; 37 } 38 }