美文网首页
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