?665. 非遞減數(shù)列(Python)

題目

難度:★★☆☆☆
類型:數(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ū)留言~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容