/** * @param {number[]} nums * @return {boolean} */ const canBeIncreasing = (nums) => { let credit = 1, maxEdge = 0; for (let i = 0; i < nums.length; i++) { if (nums[i] >= nums[i + 1]) { if (0 === credit) return false; let tmpMaxEdge = nums[i]; credit--; if (tmpMaxEdge <= maxEdge) return false; // if my within is not incline. if (nums[i - 1] >= nums[i + 1]) { if (undefined === nums[i + 2]) { continue; } if (nums[i] >= nums[i + 2]) { return false; } else { i++; // Skip the next one. } } } } return true; };