在 JavaScript 中查找一个已排序数组中的指定数字
我们有一个按升序排列的整数数组。我们需要编写一个 JavaScript 函数,它将这样一个数组作为第一个参数,并将目标和数作为第二个参数。
该函数应当从数组中查找并返回两个数字,当将它们相加时,它们会给出一个目标和。解决此问题的条件是对常数时间和常数空间的线性时间和常数空间。
示例
以下是代码 −
const arr = [4, 6, 8, 9, 11, 12, 18, 21]; const num = 27; const findElements = (arr = [], target) => { let left = 0; let right = arr.length - 1; let res = []; while (left < right) { let leftElement = arr[left]; let rightElement = arr[right]; if (leftElement + rightElement === target) { res.push(arr[left]); res.push(arr[right]); break; } else if (leftElement + rightElement > target) { right--; } else { left++; } } return res; }; console.log(findElements(arr, num));
输出
以下是控制台输出 −
[6, 21]
广告