在 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]
廣告
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
安卓
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP