題目
難度:★★☆☆☆
類型:數(shù)組
給定一個長度為 n 的整數(shù)數(shù)組,你的任務(wù)是判斷在最多改變 1 個元素的情況下,該數(shù)組能否變成一個非遞減數(shù)列。
我們是這樣定義一個非遞減數(shù)列的: 對于數(shù)組中所有的 i (1 <= i < n),滿足 array[i] <= array[i + 1]。
示例
示例 1
輸入: [4,2,3]
輸出: True
解釋: 你可以通過把第一個4變成1來使得它成為一個非遞減數(shù)列。
示例 2
輸入: [4,2,1]
輸出: False
解釋: 你不能在只改變一個元素的情況下將其變?yōu)榉沁f減數(shù)列。
說明: n 的范圍為 [1, 10,000]。
解答
class Solution:
def checkPossibility(self, nums):
nums.insert(0, 0)
x = 0
for i in range(1, len(nums)-1):
if nums[i] > nums[i+1]:
if nums[i-1] > nums[i+1] and i+2 < len(nums) and nums[i] > nums[i+2]:
return False
x += 1
if x > 1:
return False
return True
如有疑問或建議,歡迎評論區(qū)留言~