[leetcode] 665. 非減算列python解法

3153 ワード

長さnの整数配列をあげます.最大1つの要素を変更した場合、その配列が非減算列になるかどうかを判断してください.
配列内のすべてのi(0<=i<=n−2)についてnums[i]<=nums[i+1]を満たす非減算列を定義した.
class Solution:
    def checkPossibility(self, nums: List[int]) -> bool:
        n = 0
        for i in range(1, len(nums)):
            if nums[i] < nums[i-1]:
                n += 1
                if i == 1 or nums[i] >= nums[i - 2]:
                    nums[i - 1] = nums[i]
                else:
                    nums[i] = nums[i - 1]
        return n <= 1