在 JavaScript 中将数组转换为递增序列
javascriptweb developmentfront end technology
递增序列
如果 arr[i] <= arr[i + 1] 对于每个 i(基于 0)成立,并且 (0 <= i <= 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