1 Star 1 Fork 0

laodasbch/Leetcode-Complete-Guide

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
1559.txt 1.30 KB
一键复制 编辑 原始数据 按行查看 历史
junbinLiang 提交于 2020-08-27 12:58 +08:00 . move
思路:
1. dfs
2. 记录一下parent, 不能走parent
3. 如果遇到visit 过的肯定有cycle
4. 无向图找cycle
代码:
class Solution {
boolean visit[][];
int sr=-1;int sc=-1;
boolean yes=false;
Set<String>set=new HashSet<>();
public boolean containsCycle(char[][] grid) {
visit=new boolean[grid.length][grid[0].length];
for(int i=0;i<grid.length;i++){
for(int j=0;j<grid[0].length;j++){
if(visit[i][j])continue;
dfs(grid,i,j,grid[i][j],-1,-1);
if(yes)return true;
}
}
return false;
}
public void dfs(char[][] grid,int r,int c,char cc,int lastr,int lastc){
if(r<0||c<0||r>=grid.length||c>=grid[0].length)return;
if(grid[r][c]!=cc)return;
if(visit[r][c]&&grid[r][c]==cc){
yes=true;
return;
}
visit[r][c]=true;
if(r+1!=lastr||c!=lastc){
dfs(grid,r+1,c,cc,r,c);
}
if(r-1!=lastr||c!=lastc){
dfs(grid,r-1,c,cc,r,c);
}
if(r!=lastr||c+1!=lastc){
dfs(grid,r,c+1,cc,r,c);
}
if(r!=lastr||c-1!=lastc){
dfs(grid,r,c-1,cc,r,c);
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/laodasbch/Leetcode-Complete-Guide.git
git@gitee.com:laodasbch/Leetcode-Complete-Guide.git
laodasbch
Leetcode-Complete-Guide
Leetcode-Complete-Guide
master

搜索帮助