检查 JavaScript 中的升序数组
给定一个整数序列作为数组,确定通过从数组中最多移除一个元素是否可以得到严格递增的序列。
注:如果 a0 < a1 < ... < an,则序列 a0、a1、…、an 被认为是严格递增的。只包含一个元素的序列也被认为是严格递增的。
例如,对于序列 = [1, 3, 2, 1],输出应为 -
almostIncreasingSequence(sequence) = false.
在这个数组中没有一个元素可以被移除以得到一个严格递增的序列。
对于序列 = [1, 3, 2],输出应为 -
almostIncreasingSequence(sequence) = true.
我们可以从数组中移除 3 以得到严格递增的序列 [1, 2]。或者,我们可以移除 2 以得到严格递增的序列 [1, 3]。
示例
该示例的代码将是 -
const arr1 = [3, 5, 67, 98, 3];
const arr2 = [4, 3, 5, 67, 98, 3];
const almostIncreasingSequence = sequence => {
let removed = 0;
let i = 0;
let prev = -Infinity;
while(removed < 2 && i < sequence.length) {
if(sequence[i] > prev) {
prev = sequence[i];
}else{
prev = Math.min(prev, sequence[i]);
removed++;
}
i++;
}
return removed < 2;
};
console.log(almostIncreasingSequence(arr1));
console.log(almostIncreasingSequence(arr2));输出
控制台中的输出将是 -
true false
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP