题解 | #和为S的两个数字#
和为S的两个数字
http://www.nowcoder.com/practice/390da4f7a00f44bea7c2f3d19491311b
js双指针解法
function FindNumbersWithSum(array, sum) {
let l = 0;
let r = array.length - 1;
// if(array.detailEntiList==undefined){
// return []
// }
let num = array[l] + array[r];
let ans = [];
while (l < r) {
if (array[l] + array[r] < sum) {
l++;
} else if (array[l] + array[r] > sum) {
r--;
} else if (array[l] + array[r] === sum) {
// 这里不用else if 会出错
let cur = [];
cur.push(array[l], array[r]);
ans.push(cur);
l++;
}
}
ans.sort((a, b) => {
return a[0] * a[1] - b[0] * b[1];
});
return ans[0] || [];
}