Leetcode Link: 665. 非递减数列 - 力扣(LeetCode)

题目

解法一

思路: 请参考 一定要让你弄懂为什么是贪心 - 非递减数列 - 力扣(LeetCode)

题解

class Solution:
    def checkPossibility(self, nums: List[int]) -> bool:
        if len(nums) == 1: return True
        # 处理头俩
        flag = 0 
        if nums[0] > nums[1]:
            flag = 1
            nums[0] = nums[1]
        # 瞻前顾后
        for i in range(len(nums)-1):
            if nums[i] > nums[i+1]:
                if flag == 0:
                    if i-1>=0 and nums[i+1]>=nums[i-1]:
                        nums[i] = nums[i+1]
                    else:
                        nums[i+1] = nums[i]
                    flag = 1
                else:
                    return False
        return True

启发和联系