题解 | #和为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] || []; }