题目链接:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
解题思路:
左右夹逼
1 import java.util.ArrayList;
2 public class Solution {
3 public ArrayList<Integer> FindNumbersWithSum(int [] array,int sum) {
4 ArrayList<Integer> res = new ArrayList<>();
5 if(array==null || sum==0)
6 return res;
7
8 int i=0;
9 int j=array.length-1;
10
11 while(i<j)
12 {
13 if(array[i]+array[j]==sum)
14 {
15 res.add(array[i]);
16 res.add(array[j]);
17 return res;
18 }
19 else if(array[i]+array[j]<sum)
20 {
21 i++;
22 }
23 else{
24 j--;
25 }
26 }
27
28 return res;
29
30 }
31 }
来源:https://www.cnblogs.com/wangyufeiaichiyu/p/10872291.html