zoukankan      html  css  js  c++  java
  • leetcode 994.腐烂的橘子

    题目:

    在给定的网格中,每个单元格可以有以下三个值之一:

    • 值 0 代表空单元格;
    • 值 1 代表新鲜橘子;
    • 值 2 代表腐烂的橘子。

    每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。

    返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1

    分析:

    最近在看广度优先搜素的题目,这个是比较简单基础的题了。

    腐烂的橘子会把靠近他的新鲜的橘子腐蚀,那么就是只要从所有坏的橘子的地方一层一层往外遍历就可以了。

    代码:

     1 //5ms 97%
     2 class Solution {
     3     public int orangesRotting(int[][] grid) {
     4         Queue<int[]> q=new LinkedList<>();
     5         int h=grid.length,w=grid[0].length,time=0;
     6         for(int n=0;n<h;++n)
     7             for(int m=0;m<w;++m)
     8                 if(grid[n][m]==2) {
     9                     int[] po= {0,n,m};
    10                     q.add(po);
    11                 }
    12         while(!q.isEmpty()) {
    13             int[] g=q.poll();
    14             time=time>g[0]?time:g[0];
    15             if(g[1]+1<h&&grid[g[1]+1][g[2]]==1) {
    16                 grid[g[1]+1][g[2]]=2;
    17                 int[] po= {g[0]+1,g[1]+1,g[2]};
    18                 q.add(po);            
    19             }
    20             if(g[1]-1>=0&&grid[g[1]-1][g[2]]==1) {
    21                 grid[g[1]-1][g[2]]=2;
    22                 int[] po= {g[0]+1,g[1]-1,g[2]};
    23                 q.add(po);            
    24             }
    25             if(g[2]-1>=0&&grid[g[1]][g[2]-1]==1) {
    26                 grid[g[1]][g[2]-1]=2;
    27                 int[] po= {g[0]+1,g[1],g[2]-1};
    28                 q.add(po);            
    29             }
    30             if(g[2]+1<w&&grid[g[1]][g[2]+1]==1) {
    31                 grid[g[1]][g[2]+1]=2;
    32                 int[] po= {g[0]+1,g[1],g[2]+1};
    33                 q.add(po);            
    34             }
    35         }
    36         for(int n=0;n<h;++n)
    37             for(int m=0;m<w;++m)
    38                 if(grid[n][m]==1) 
    39                     return -1;
    40         return time;
    41     }
    42 }
  • 相关阅读:
    把Linux安装到移动硬盘上
    关于thinkphp 开发的网站部署问题
    lamp 网站打不开,不显示也不报错,
    前端之css语法3
    前端之css笔记2
    前端之练习2
    前端之css笔记1
    前端之笔记1
    前端之练习1
    MySQL之练习题5
  • 原文地址:https://www.cnblogs.com/CHAHA123/p/10736353.html
Copyright © 2011-2022 走看看