Ref: https://leetcode-cn.com/problems/non-overlapping-intervals/
这道题难点在于利用测试用例设计判断条件来覆盖全部可能,可以考虑下面三种给定用例:
对于前两个用例,在遍历时发现时,需要更新;而对于第三个用例,则需要更新。直观上可以看出,只有当第个元素也比大时,需要更新,其他情况下则只需要考虑和的关系。主要代码如下:
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
网友评论