Leetcode刷題筆記7

繼續解leetcode保持進度,有幾題是之前解過類似類型的題目。

House Robber

給一個數組,小偷不能間隔偷,否則觸發警報,獲取最大利益。

解法

參考刷題筆記4之前的解法。 逆著迭代解,紀錄偷與不偷的金額用來動態規劃, 最後會有一開始偷與不偷所獲得的金額並且回傳最大值。

Shortest Unsorted Continuous Subarray

給予一個陣列,找出需要排序的子陣列大小。

這題可以透過如刷題筆記3堆疊 的方式解決。leetcode也有給出空間複雜度為O(1)的結法,不過作為複習這邊採用堆疊解決。

透過兩個方向的堆疊,來找出需要排序的左邊與右邊之後相減得出答案。 注意的是當中有重複的值,若在子數組當中為最大(或最小)的數值重複, 應該注意邊界避免計算多餘的值。注意完全升序完全降序的情形, 以及左右側有子陣列****最大值最小值


LeetCode Dynamic programming Stack