【LeetCode笔记】79. 单词搜索 剑指 Offer 12 矩阵中的路径(Java、dfs)
生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记】79. 单词搜索 剑指 Offer 12 矩阵中的路径(Java、dfs)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目描述
- 思路 & 代碼
- 更新版 2.0
題目描述
- 一眼dfs,走四個方向即可
思路 & 代碼
class Solution {boolean[][] visited;boolean found;public boolean exist(char[][] board, String word) {char[] wordArr = word.toCharArray();int m = board.length;int n = board[0].length;visited = new boolean[m][n];// 找到入口,就進行查找for(int i = 0; i < m; i++){for(int j = 0; j < n; j++){if(wordArr[0] == board[i][j]){visited[i][j] = true;found = find(board, wordArr, i, j, 1);if(found){return found;}visited[i][j] = false;}}}return false;}boolean find(char[][] board, char[] word, int x, int y, int index){if(index == word.length){return true;}// 找四個方向if(x + 1 < board.length && !visited[x + 1][y] && word[index] == board[x + 1][y]){visited[x + 1][y] = true;found = find(board, word, x + 1, y, index + 1);if(found){return found;}visited[x + 1][y] = false;}if(x - 1 >= 0 && !visited[x - 1][y] && word[index] == board[x - 1][y]){visited[x - 1][y] = true;found = find(board, word, x - 1, y, index + 1);if(found){return found;}visited[x - 1][y] = false;}if(y + 1 < board[0].length && !visited[x][y + 1] && word[index] == board[x][y + 1]){visited[x][y + 1] = true;found = find(board, word, x, y + 1, index + 1);if(found){return found;}visited[x][y + 1] = false;}if(y - 1 >= 0 && !visited[x][y - 1] && word[index] == board[x][y - 1]){visited[x][y - 1] = true;found = find(board, word, x, y - 1, index + 1);if(found){return found;}visited[x][y - 1] = false;}return found;} }更新版 2.0
- 臥槽。。之前這么長的代碼我怎么受得了T T
- 無注釋純凈版
總結
以上是生活随笔為你收集整理的【LeetCode笔记】79. 单词搜索 剑指 Offer 12 矩阵中的路径(Java、dfs)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器能记录远程访问用户嘛,bat记录远
- 下一篇: 【LeetCode笔记】200. 岛屿数