🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
**题目** 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 * * * **思路** 同样是双指针法,要注意题目给出的条件,进而看出主要的思想(递增,乘积最小) 示例:sum=7,给定数组 \[1,2,3,4,5,6\],满足sum=7的有三组,分别是:\[1,6\],\[2,5\],\[3,4\],乘积最小的是\[1,6\],可以看出,**递增数组中,距离最远乘积则最小**,那么现在思路就很清晰了,解决方法也非常简单 ``` function FindNumbersWithSum(array, sum) { // write code here let i = 0 let j = array.length - 1 let result = [] while (i < j) { let counts = array[i] + array[j] if (counts === sum) { result.push(array[i]) result.push(array[j]) break } else if (counts < sum) { i++ } else { j-- } } return result } ```