例如:
board = [ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E'] ] Given word = "ABCCED", return true. Given word = "SEE", return true. Given word = "ABCB", return false.
难度:【medium】
思路:利用深度优先搜索(dfs),在递归的时候要记录哪些是已经走过的位置,不能重复走,可以使用vector<pair<int, int>>存放已经走过的位置,也可以直接修改矩阵(如果允许的情况下),将该元素改为矩阵中不可能出现的某个字符,如‘\0’,'*' 等等,在回溯的时候在还原回来。
方法1:用vector<pair<int, int>>记录已经访问过的位置。
bool isVisited(int i, int j, vector<pair<int, int>>& visited) {
for (int k = 0; k < visited.size(); ++k) {
if (vis