Given an array with n
integers, your task is to check if it could become non-decreasing by modifying at most 1
element.
We define an array is non-decreasing if array[i] <= array[i + 1]
holds for every i
(1 <= i < n).
Input: [4,2,3] Output: True Explanation: You could modify the first 4 to 1 to get a non-decreasing array.
Input: [4,2,1] Output: False Explanation: You can't get a non-decreasing array by modify at most one element.
Note: The n
belongs to [1, 10,000].
class Solution:
def checkPossibility(self, nums: List[int]) -> bool:
flag = False
for i in range(len(nums) - 1):
if nums[i] > nums[i + 1]:
if flag:
return False
flag = True
if i > 0 and nums[i - 1] > nums[i + 1]:
nums[i + 1] = nums[i]
return True