美文网首页
665. Non-decreasing Array

665. Non-decreasing Array

作者: morningstarwang | 来源:发表于2021-02-08 11:44 被阅读0次

Ref: https://leetcode-cn.com/problems/non-overlapping-intervals/

这道题难点在于利用测试用例设计判断条件来覆盖全部可能,可以考虑下面三种给定用例:

  • [4,2,3]
  • [-1,4,2,3]
  • [2,3,3,2,4]

对于前两个用例,在遍历时发现nums[i] < nums[i - 1]时,需要更新nums[i - 1] = nums[i];而对于第三个用例,则需要更新nums[i]=nums[i-1]。直观上可以看出,只有当第i-2个元素也比i - 1大时,需要更新nums[i]=nums[i-1],其他情况下则只需要考虑i - 1i的关系。主要代码如下:

class Solution:
    def checkPossibility(self, nums: List[int]) -> bool:
        k = 0
        l = len(nums)
        for i in range(1, l):
            if k > 1:
                return False
            if nums[i] >= nums[i - 1]:
                continue
            k += 1
            if i - 2 >= 0 and nums[i - 2] > nums[i]:
                nums[i] = nums[i - 1]
            else:
                nums[i - 1] == nums[i]
        return k <= 1

相关文章

网友评论

      本文标题:665. Non-decreasing Array

      本文链接:https://www.haomeiwen.com/subject/hoeztltx.html