檢查 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
廣告