class Solution(object):
def checkPossibility(self,nums):
"""
:type nums: List[int]
:rtype: bool
"""
#判断截断点,对截断点进行分析
count=0
i=0
length=len(nums)
for j in range(length-1):
if nums[j]>nums[j+1]:
count+=1
i=j
if count==0:#没有截断点
return True
if count>1:#截断点大于2
return False
if count==1:#截断点为1,例如[1,2,3,9,5,8,12,13],
#9和5之间产生一个截断点,
#此时产生以下几种情况:
#1.截断点在首位,截断点在倒数第二位,截断点产生峰值或谷值,返回True
#2.否则为False
if i==length-2 or i==0 or nums[i]<=nums[i+2] or nums[i-1]<=nums[i+1] :
return True
else:
return False
非递减数列(leetcode665)
最新推荐文章于 2023-04-08 21:25:03 发布