和为S的两个数字
和为S的两个数字
输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。
代码实现
package 剑指offer;
import java.util.ArrayList;
/**
* @author WangXiaoeZhe
* @Date: Created in 2019/11/22 16:09
* @description:
*/
public class Main9 {
public static void main(String[] args) {
}
public ArrayList<Integer> FindNumbersWithSum(int[] array, int sum) {
ArrayList<Integer>list=new ArrayList<>();
if (array == null || array.length < 2) {
return list;
}
int i = 0, j = array.length - 1;
while (i < j) {
if (array[i] + array[j] == sum) {
list.add(array[i]);
list.add(array[j]);
} else if (array[i] + array[j] > sum) {
j--;
}else {
i++;
}
}
return list;
}
}
人生若只如初见,浮沉繁华,慕然回首,不过过眼云烟。
我只在红尘中争渡,即便是一朵浪花,亦奋勇向前。