如何將陣列轉換為 JavaScript 中的遞增序列
遞增序列
如果 arr[i] <= arr[i + 1] 對每個 i (從 0 到 n - 2) 成立,我們就將一個數組定義為遞增陣列。
問題
我們被要求編寫一個 JavaScript 函式,該函式接受一個整數陣列 arr 作為第一個也是唯一的引數。
我們的函式應確定我們是否可以透過修改陣列中最多一個元素將該陣列轉換為遞增陣列。
如果可以,我們應該返回 true,否則返回 false。
例如,如果函式的輸入是
輸入
const arr = [8, 3, 3, 7, 9];
輸出
const output = true;
輸出說明
因為我們可以將 0 索引處的 8 替換為 1 或 2 以獲得所需的陣列。
示例
以下是程式碼 −
const arr = [8, 3, 3, 7, 9];
const canConvert = (arr = []) => {
const find = () => {
for (let i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
return false
}
}
return true
}
for (let i = 0; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
const temp = arr[i]
arr[i] = arr[i - 1]
if (find(arr)) {
return true
}
arr[i] = temp
arr[i - 1] = arr[i]
return find(arr)
}
}
return true
}
console.log(canConvert(arr));輸出
true
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP