LeetCode 665 非遞減數列

2022-09-22 02:48:10 字數 751 閱讀 6490

一道簡單題把自己考成了**。。。

貪心問題,隨便加條件也只是個貪心問題,重要的是貪心什麼;

這道題需要前瞻後顧,實際問題存在兩種可能;

對於1,4,2,5;

對於該序列的調整無非就是兩種情況:

1,2,2,5;

1,4,4,5;

可以看到兩種情況都可以滿足;

而對於:

1,4,2,3;

有兩種調整方式:

1,2,2,3;

1,4,4,3;

可知,只可以採用第一種方式;

所以我們可以得到兩種調整方式:

即當nums[i]>nums[i+1]時:

1.使得nums[i+1]=nums[i];

2.使得nums[i]=nums[i+1];

但是如何選擇策略,必須要通過貪心思想來抉擇;

由於只能改變一次,所以我們需要保證的是,要求更改一次並不會影響後面的遞增序列,也就是不會將後續的遞增序列破壞;

如果不會破壞後面的遞增序列,我們要求更改不會破壞之前的遞增序列;

所以判定條件只需要優先保證之後的遞增序列不受影響即可,也就是使得nums[i]=nums[i+1]優先;

class

solution

else

flag = false

; }

else}}

return

true

; }

};

非遞減數列 leetcode665

class solution object defcheckpossibility self,nums type nums list int rtype bool 判斷截斷點,對截斷點進行分析 count 0 i 0length len nums for j in range length 1 if...

Leetcode 665 非遞減數列

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

leetcode 665 非遞減數列

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