665.非遞減數列
阿新 • • 發佈:2021-06-23
665.非遞減數列
思路問題:這道題主要要考慮到出現比前面小的兩種情況,對這兩種情況進行修改,要注意不可以影響到其他書數大小的變化,還有要注意i為1的情況
class Solution(object): def checkPossibility(self, nums): """ :type nums: List[int] :rtype: bool """ #獲取列表的長度 N = len(nums) count = 0 #遍歷列表 for i in range(1, N): #當出現後一個數比前一個數小的情況,count增加 if nums[i] < nums[i - 1]: count += 1 #對造成非遞減的情況的值進行修改,有兩種情況 if i == 1 or nums[i] >= nums[i - 2]:#要考慮特殊的情況當i為1的時候 #該數比前一個數小,但是比前方的第二個數大,所以只需要修改前面的那個數和自己相等 nums[i - 1] = nums[i] else: nums[i] = nums[i - 1] #該數比前面兩個數都小,只需要修改自己為自己前面的那個數 return count <= 1