Leetcode 79. Word Search 要真正理解回溯的写法!
来源:互联网 发布:乌海四中网络选课系统 编辑:程序博客网 时间:2024/06/15 07:04
Leetcode 79. Word Search
public class Solution {public static void main(String[] args){char[][] board = {{'A','B','C','E'},{'S','F','E','S'},{'A','D','E','E'}};Solution s = new Solution();s.exist(board, "ABCESEEEFS");} public boolean exist(char[][] board, String word) { char start = word.charAt(0); int m = board.length; if(m==0) return false; int n = board[0].length; int[][] used = new int[m][n]; boolean res = false; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ if(board[i][j]==start){ boolean tmp = backtrack(board,word,start,m,n,0,i,j,used); used[i][j] = 0;//back! if(tmp) return true; } } } return res; } public boolean backtrack(char[][] board, String word,char start,int m,int n,int idx,int i,int j,int[][] flag){ flag[i][j] = 1; if(idx==word.length()-1) return true; idx++; start = word.charAt(idx); boolean res = false; if(i-1>=0&&flag[i-1][j]!=1&&board[i-1][j]==start) {//up boolean tmp = backtrack(board,word,start,m,n,idx,i-1,j,flag); flag[i-1][j] = 0; if(tmp) return true; } if(i+1<m&&flag[i+1][j]!=1&&board[i+1][j]==start){ //down boolean tmp = backtrack(board,word,start,m,n,idx,i+1,j,flag); flag[i+1][j] = 0; if(tmp) return true; } if(j-1>=0&&flag[i][j-1]!=1&&board[i][j-1]==start){ //left boolean tmp = backtrack(board,word,start,m,n,idx,i,j-1,flag); flag[i][j-1] = 0; if(tmp) return true; } if(j+1<n&&flag[i][j+1]!=1&&board[i][j+1]==start){ //right boolean tmp = backtrack(board,word,start,m,n,idx,i,j+1,flag); flag[i][j+1] = 0; if(tmp) return true; } return res; }}
0 0
- Leetcode 79. Word Search 要真正理解回溯的写法!
- leetcode---Word Search---回溯
- (回溯法)LeetCode#79. Word Search
- leetcode Word Search回溯算法
- leetCode #79 Word Search 回溯
- LeetCode 79. Word Search 二维平面使用回溯法
- 79. Word Search 回溯算法
- LeetCode-79-Word Search(回溯法)-Medium
- LeetCode 79. Word Search
- [LeetCode]79.Word Search
- LeetCode --- 79. Word Search
- [Leetcode] 79. Word Search
- [leetcode] 79.Word Search
- 【leetcode】79. Word Search
- [LeetCode]79. Word Search
- 79. Word Search LeetCode
- leetcode 79. Word Search
- LeetCode 79. Word Search
- 如何看待技术学习
- 64:Binary Tree Zigzag Level Order Traversal
- 排序问题2
- AndResGuard资源混肴
- MySQL5.7.17 编译安装及二进制安装详解
- Leetcode 79. Word Search 要真正理解回溯的写法!
- modprobe drdb FATAL: Module drdb not found
- APP开发实战158-局部广播(Local Broadcast)
- Android性能优化(一)--关于内存溢出
- How to Run a Shell Script with Mac App Sandbox Enabled
- python3爬虫的编码问题
- bzoj 1271 二分
- CentOS 搭建的Java环境
- JavaScript快速入门