Dynamic Programming

53. Maximum Subarray

53. Maximum Subarray 暴力解 class Solution: def maxSubArray(self, nums:

712. Minimum ASCII Delete Sum for Two Strings

712. Minimum ASCII Delete Sum for Two Strings 概念和 1143.

583. Delete Operation for Two Strings

583. Delete Operation for Two Strings 兩個單字需要刪掉的字元,恰好是他們沒有重疊的字元,他們沒有重疊的字元,所以找出兩個字元的最長公共子字串,

1143. Longest Common Subsequence

1143. Longest Common Subsequence 上課會學到的經典動態規劃問題,最長公共子序列 。 同時從兩個字字串的開頭出發 1. 如果說兩個字元一樣,那代表有一個公共子序列,

983. Minimum Cost For Tickets

983. Minimum Cost For Tickets 目標 dp[i] 是當在旅程從第 i

1109. Corporate Flight Bookings

1109. Corporate Flight Bookings 直覺的做法,直接把所有的情況窮舉,再存入到到一個矩陣,接下來就只要對矩陣做每行的總合就可以。 class Solution:

213. House Robber II

213. House Robber II 基本上先完成 198. House Robber 自頂向下或自底向上都沒關係,接著判斷要不要偷第一家或最後一家,

198. House Robber

198. House Robber 自頂向下 class Solution: def rob(self, nums:

329. Longest Increasing Path in a Matrix

329. Longest Increasing Path in a Matrix 1. 深度優先搜索 2.

221. Maximal Square

221. Maximal Square 💡這個題目有動態規劃的最佳解,不過這個題目如果使用窮舉的話是不會超時的,所以我很建議可以就從窮舉來想,再看看能不能優化。 窮舉法 題目給定的矩陣長寬是不定的,而假設今天如果題目的矩陣全部都是