思路: 遍历整个数组,如果遇到nums[i]>nums[i+1]
的情况,则要么修改nums[i]
,要么修改nums[i+1]
。若修改一次就能成功,则去掉nums[i]
或者num[i+1]
,剩下的数组必然是非递减的。
class Solution:
def checkPossibility(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
for i in range(len(nums)-1):
if nums[i]>nums[i+1]:
s1 = nums[0:i]+nums[i+1:]
if s1==sorted(s1):
return True
s2 = nums[0:i+1]+nums[i+2:]
if s2==sorted(s2):
return True
return False
return True