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