Leetcode刷题 2021.03.30

Leetcode286 墙与门

你被给定一个 m × n 的二维网格 rooms ,网格中有以下三种可能的初始化值:

-1 表示墙或是障碍物
0 表示一扇门
INF 无限表示一个空的房间。然后,我们用 231 - 1 = 2147483647 代表 INF。你可以认为通往门的距离总是小于 2147483647 的。
你要给每个空房间位上填上该房间到 最近门的距离 ,如果无法到达门,则填 INF 即可。

又是经典的BFS板子题,常做常新~。

class Solution {
   
    int[][] directions = new int[][]{
   {
   -1, 0}, {
   1, 0}, {
   0, -1}, {
   0, 1}};
    public void wallsAndGates(int[][] rooms) {
   
    	//BFS模板题
        Queue<int[]> queue = new LinkedList<>();
        int m = rooms.length, n = rooms[0].length;
        for(int i = 0; i < m; i++){
   
            for(int j = 0; j < n; j++){
   
                if (rooms[i][j] == 0){
   
                    queue.offer(new int[]{
   i, j});
                }
            }
        }
        int count = 1;
        while (!queue.isEmpty()){
   
            
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值