劍指Offer 矩陣中的路徑(dfs剪枝,回溯)

2021-10-08 12:09:43 字數 1087 閱讀 8893

你不刷題,面試官就刷你。

1、牛客和leetcode上面都有,方法傳入的引數不太一樣,但解法都一樣,自己沒想出來,做這類dfs的題目少,看了大佬們的解法,自己也能寫出來了。總結一下。

寫的時候,我們要明確的知道,遞迴的終止條件,遞迴傳入的引數。

這道題傳入的引數有矩陣、矩陣的行列座標n,m、題目要求的字串,已經字串的乙個索引。終止條件也就是邊界,就是n,m,不能超過矩陣大小,也不能小於0,然後是還要和題目要求的字串匹配,所以這些是約束,條件。什麼時候說明找到了正確的了呢?就是當找完了所以,字串的長度-1等於我們一開始傳入的索引0的時候。

牛客:

public

boolean

haspath

(char

matrix,

int rows,

int cols,

char

str)

}//每個位置dfs

for(

int i =

0; i < rows; i++)}

return

false;}

boolean

dfs(

char

arr,

int n,

int m,

char

str,

int k)

leetcode

public

boolean

exist

(char

board, string word)}}

return

false;}

boolean

dfs(

char

arr,

int n,

int m,string word,

int k)

劍指offer 矩陣中的路徑

請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,則該路徑不能再進入該格仔。例如 a b t g c f c s j d e h 矩陣中包含一條字串...

劍指offer 矩陣中的路徑

請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,則之後不能再次進入這個格仔。注意 樣例matrix a b c e s f c s a d e e...

劍指offer 矩陣中的路徑

請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,則之後不能再次進入這個格仔。注意 matrix a b c e s f c s a d e e s...