66 矩陣中的路徑

2021-10-12 08:00:22 字數 927 閱讀 4076

題目描述:請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串

所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向

左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,

則該路徑不能再進入該格仔。

思路:回溯法,雙層 for 迴圈,判斷每乙個點,每次遞迴呼叫上下左右四個點,用

flag 標誌是否已經匹配(return),進行判斷點的位置是否越界,是否已經正確匹

配,判斷矩陣的路徑與模式串的第 index 個字元是否匹配。

**實現:

public boolean haspath(char matrix, int rows, int cols, char str) 

} }return false;

}private boolean helper(char matrix,int rows,int cols,int i,int j,char str,int k,int flag)

if(k == str.length - 1)

flag[index] = 1;

if (helper(matrix, rows, cols, i - 1, j, str, k + 1, flag)

|| helper(matrix, rows, cols, i + 1, j, str, k + 1, flag)

|| helper(matrix, rows, cols, i, j - 1, str, k + 1, flag)

|| helper(matrix, rows, cols, i, j + 1, str, k + 1, flag))

flag[index] = 0;

return false;

}

面試題目66 矩陣中的路徑

題目 請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某路徑 字串所有字元的路徑,路徑可以從矩陣中任意一格開始,每一步可以在矩陣中向左右上下移動一格,includeusing namespace std 判斷矩陣中是否存在相應的路徑 bool has path core char matrix,...

劍指offer 面試題66 矩陣中的路徑

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

矩陣中的路徑

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