Leetcode中Path的題目總結

2021-09-19 04:18:54 字數 1452 閱讀 8689

matrix中的path問題:

62.unique paths

63.unique paths ii

這兩題是典型的dp問題,要求一共有多少種方案。分析狀態f(i, j)是走到(i, j)總共的路徑。它可以由前面兩個狀態得到,即f(i, j)=f(i - 1, j) + f(i, j - 1)。最後注意邊界值即可。變形是有設obstacle, 那麼遇到obstacle的時候,把當前可行路徑設為0即可。

64.minimum path sum

這一題在上一題的基礎上變形,之前要求path個數,現在要求minimum sum。同樣分析狀態f(i, j)是走到(i, j)時的最小sum。它可以由前面兩個狀態得到,即f(i, j)=min(f(i - 1, j), f(i, j - 1)) + value(i, j)。還是注意邊界值就可以了。

174.dungeon game

這一題有點思維上有些跳躍,但萬變不離其宗。我要保證它不死,就要保證最後走完至少還剩下一滴血。所以從後往前計算會比較方便。當遇到需要血量小於1的時候,我們還是按1來算,因為是反過來算,所以不管當前這一次可以給我們加多少血量,之前那一步的算完的時候,到少來行有1。

329.longest increasing path in a matrix

這是乙個dfs的問題,我要求最長增長路徑,那我就得每個點都試一下。優化是當我走到乙個點時,我如果已經計算過這個點,那麼我就把計算好的值存起來。如果有乙個點在計算最長增長路徑時經過這個點,就可以直接用存好的值,而不是再計算一遍。

361.bomb enemy

這個問題最重要是關注新起一行或者一列和當w出現的時候,從開始到w出現之前,每個同一行,同一列的數遇到的enermy都是相同的,但是當w出現隔斷之後,我們就必須重新計算從w開始,到下乙個w之間有多少enermy了。

binary tree中的path問題

112.path sum

113.path sum ii

這兩個乙個就boolean, 乙個要求輸出所有結果。相同點是都到從上向下掃出結果,不同點是boolean掃到乙個正解就可以返回true,可以用dfs,而另乙個要把所有的都掃一遍,存到結果中輸出,典型的dfs + backtracking問題。

124.binary tree maximum path sum

這不是用dfs做,分兩種可能,一種可能是乙個single path**現了最大和,另一種可能是左右子樹和母節點共同構成最大和。就這兩種情況分別計算。

257.binary tree paths

這就是個dfs問題。

Leetcode中括號題

想到括號問題,我最熟悉的是用stack來判斷乙個括號序列是否為valid。沒錯,這就是我對括號題,最初的認識。題目一 valid parentheses given a string containing just the characters and determine if the input ...

node中的path模組

path為nodejs的核心模組之一,主要用來處理檔案的路徑。當使用時需要引入path模組 var path require path 這裡總結一下path的屬性和方法 path.normalize src 規範化路徑,多個斜槓會被替換成乙個 路徑末尾的斜槓會被保留 windows 系統上,會使用反...

view中path的使用

path mpath new path 1,path.direction.ccw和 path.direction.cw path.direction.cw表示順時針 path.direction.ccw表示逆時針 2 lineto moveto 在lineto表示軌跡運動點 moveto表示軌跡運動...