小小小幸运 发表于 2022-8-12 21:07:31

【剑指Offer 12】矩阵中的路径

/**
* 剑指 Offer 12. 矩阵中的路径
* https://leetcode.cn/problems/ju-zhen-zhong-de-lu-jing-lcof/
*
* 思路:深度优先搜索
* */
public class Solution {
    private char[][] board;
    private String word;
    private int m;
    private int n;
    private boolean[][] marked;

    public boolean exist(char[][] board, String word) {
      this.board = board;
      this.word = word;
      m = board.length;
      n = board.length;
      marked = new boolean;

      for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (board != word.charAt(0)) {
                  continue;
                }
                if(dfs(i, j, 0)) {
                  return true;
                }
            }
      }
      return false;
    }

    private boolean dfs(int i, int j, int index) {
      if (index == word.length()) {
            return true;
      }
      if (i < 0 || i >= m || j < 0 || j >= n) {
            return false;
      }
      if (marked == true || board != word.charAt(index)) {
            return false;
      }
      marked = true;
      index++;
      boolean result = dfs(i + 1, j, index)
                || dfs(i - 1, j, index)
                || dfs(i, j + 1, index)
                || dfs(i, j - 1, index);
      marked = false;
      return result;
    }
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 【剑指Offer 12】矩阵中的路径