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).
Example 1:
Input: [4,2,3]
Output: True
Explanation: You could modify the first 4
to 1
to get a non-decreasing array.
Example 2:
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].
给定一个包含n个整数的数组,您的任务是通过修改最多1个元素来检查它是否可以变为不减少。 如果array [i] <= array [i + 1]对于每个i(1 <= i <n)成立,我们定义一个数组是非递减的。
class Solution(object):
def checkPossibility(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
times = 0
for i in range(1, len(nums)):
if nums[i] < nums[i - 1]:
times += 1
if times == 2:
return False
if (i != 1 and i != len(nums) - 1):
if (nums[i - 1] > nums[i + 1] and nums[i] < nums[i - 2]):
return False
return True