Non-decreasing Array
MediumArray
Solution
export function checkPossibility(nums: number[]): boolean {
const n = nums.length;
let nonDecreasingIndex = -1;
for (let currentIndex = 0; currentIndex < nums.length - 1; currentIndex++) {
if (nums[currentIndex + 1] < nums[currentIndex]) {
if (nonDecreasingIndex !== -1) {
return false;
}
nonDecreasingIndex = currentIndex;
}
}
return (
[-1, 0, n - 2].includes(nonDecreasingIndex) ||
nums[nonDecreasingIndex - 1] <= nums[nonDecreasingIndex + 1] ||
nums[nonDecreasingIndex] < nums[nonDecreasingIndex + 2]
);
}