665 非遞減數列 簡單

2022-01-18 10:28:30 字數 1159 閱讀 6904

題目**於力扣(leetcode)

目錄665. 非遞減數列

說明:

因可以改變一次陣列元素的值,那麼定義乙個變數用來記錄改變元素的次數,大於 1 次時即返回 false遍歷陣列,判斷當前遍歷元素是否小於前乙個元素

小於前乙個元素時,還需要判斷是否小於前二個元素

如果小於前乙個且小於前二個元素時,那麼只能將當前元素改變為前乙個元素的值,改變次數的變數加 1

如果當前遍歷元素僅小於前乙個元素且大於等於前二個元素時,那麼改變前乙個元素的值為當前元素的值

public static boolean checkpossibility(int nums) ,需要將 2 換成 4,如果將 4 換成 2,則 2 < 3,不滿足非遞減規則

// i > 1,當前遍歷元素不為第 2 位時,否則無法獲取到前二位元素

if (i > 1 && (nums[i] - nums[i - 2] < 0)) else ,將 4 換成 2

nums[i - 1] = nums[i];

}changecount ++;

}// 改變次數大於 1 次時,返回 false

665 非遞減數列

思路 遍歷整個陣列,如果遇到nums i nums i 1 的情況,則要麼修改nums i 要麼修改nums i 1 若修改一次就能成功,則去掉nums i 或者num i 1 剩下的陣列必然是非遞減的。class solution def checkpossibility self,nums ty...

665 非遞減數列

給定乙個長度為 n 的整數陣列,你的任務是判斷在最多改變 1 個元素的情況下,該陣列能否變成乙個非遞減數列。我們是這樣定義乙個非遞減數列的 對於陣列中所有的 i 1 i n 滿足 array i array i 1 示例 1 輸入 4,2,3 輸出 true 解釋 你可以通過把第乙個4變成1來使得它...

665 非遞減數列

給你乙個長度為 n 的整數陣列,請你判斷在 最多 改變 1 個元素的情況下,該陣列能否變成乙個非遞減數列。我們是這樣定義乙個非遞減數列的 對於陣列中所有的 i 0 i n 2 總滿足 nums i nums i 1 示例 1 輸入 nums 4,2,3 輸出 true 解釋 你可以通過把第乙個4變成...