Dynamic Programming

140. Word Break II

140. Word Break II 💡請先參考 139. Word Break 在 139.

322. Coin Change

322. Coin Change 題目會給定兩樣東西,一樣是總金額(amount),一樣是硬幣的面額(coins),題目要求我們找出透過不同的面額組合,找出使用最少枚硬幣的解法。

518. Coin Change 2

518. Coin Change 2 這個題目是 322 Coin Change 的進階題目,該題是個動態規劃的問題,

448. Find All Numbers Disappeared in an Array

448. Find All Numbers Disappeared in an Array 這個題目的簡單做法是排序後再找,但是這樣的做法通常都是會被問到提供更好的解法。

651. 4 Keys Keyboard

651. 4 Keys Keyboard 這個題目滿有趣的,為了幫助大家對這個題目有更深的印象,我分享一個小故事,我在剛開始學寫程式的時候,是從 HTML

10. Regular Expression Matching

10. Regular Expression Matching 這一題是正規表達式的題目,主要有兩個符號要考慮:「.」和「*」,點號和星號,點號比較好處理,因為只要是點好,

416. Partition Equal Subset Sum

416. Partition Equal Subset Sum 首先我們要確立目標,目標是給定一個陣列能不能分成兩個子集合,讓這兩個子集合的總和相等。 第一個要去想的地方比較簡單,既然兩個子集合要相等,

115. Distinct Subsequences

115. Distinct Subsequences class Solution: def numDistinct(self, s: str,

975. Odd Even Jump

975. Odd Even Jump 💡這一題建議在後面練習的時候再來寫 根據網路上的數據,這一題曾經是 Google 面試的高頻動態規劃題目,Leetcode

152. Maximum Product Subarray

152. Maximum Product Subarray 這個題目算是一個比較困難一點的動態規劃題目,首先我們先了解題目,題目要求的是找的是一個子陣列,這個子陣列每個元素的積會比其他子陣列所求的積裡面還大,並求其積為多少。 題目給定的陣列沒有排序、