286. Walls and Gates
Posted 我的名字叫周周
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了286. Walls and Gates相关的知识,希望对你有一定的参考价值。
/* * 286. Walls and Gates * 2016-7-1 by Mingyang * 好吧,这道题目我们不需要想太多,就算题目标的是BFS,可是个人还是习惯做dfs * 基本的dfs不需要判断重复因为可以revisite */ public void wallsAndGates(int[][] rooms) { for (int i = 0; i < rooms.length; i++) for (int j = 0; j < rooms[0].length; j++) if (rooms[i][j] == 0) dfs(rooms, i, j, 0); } private void dfs(int[][] rooms, int i, int j, int d) { if (i < 0 || i >= rooms.length || j < 0 || j >= rooms[0].length || rooms[i][j] < d) return; rooms[i][j] = d; //这个地方写的妙,初学者会想d到底是不是最小的呢,其实在每个门向周围的时候辐射已经考虑到这个先后问题了 dfs(rooms, i - 1, j, d + 1); dfs(rooms, i + 1, j, d + 1); dfs(rooms, i, j - 1, d + 1); dfs(rooms, i, j + 1, d + 1); }
以上是关于286. Walls and Gates的主要内容,如果未能解决你的问题,请参考以下文章