如何将数组转换为 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