classSolution: defcheckPossibility(self, nums: List[int]) -> bool: # 分情况讨论,根据题意当发生非递减时,需要进行修改,修改一共有两种方式,大的改小或者小的改大,如果两种修改方式都不行,那么不可能变成非递减数列 # 另一种是如果有1次以上需要修改,则不能只修改一次变成非递减数列 res = 0 maxnum = nums[0] for i inrange(1,len(nums)): if nums[i]<nums[i-1]: res+=1 if res>=2: returnFalse if i>=2and i+1<len(nums): if nums[i-2]>nums[i] and nums[i-1]>nums[i+1]: returnFalse returnTrue