ลำดับเพิ่มขึ้นอย่างเคร่งครัด (Strictly Increasing Sequence) หมายถึงลำดับที่สมาชิกแต่ละตัวมากกว่าตัวก่อนหน้าอย่างเคร่งครัด
เราต้องเขียนฟังก์ชันตรวจสอบว่าสามารถสร้างลำดับเพิ่มขึ้นอย่างเคร่งครัดได้โดยการลบสมาชิกไม่เกิน 1 ตัวจากอาร์เรย์
ตัวอย่างโค้ด
const almostIncreasingSequence = (arr = []) => {
if (isIncreasingSequence(arr)) { return true; }
for (let i = 0; i < arr.length; i++) {
let copy = arr.slice(0);
copy.splice(i, 1);
if (isIncreasingSequence(copy)) { return true; }
}
return false;
};
const isIncreasingSequence = (arr = []) => {
for (let i = 0; i < arr.length - 1; i++) {
if (arr[i] >= arr[i + 1]) { return false; }
}
return true;
};
console.log(almostIncreasingSequence([1, 3, 2, 1])); // false
console.log(almostIncreasingSequence([1, 3, 2])); // true
ผลลัพธ์
ค่าที่แสดงในคอนโซลจะเป็นดังนี้:
false true