当前位置: 首页 > news >正文

leetcode994.腐烂的橘子

思路源自

【力扣hot100】【LeetCode 994】腐烂的橘子|多源BFS

这里图中的腐烂的的橘子是同时对周围进行腐化,所以采用多源bfs就能解决 

多源bfs与单源bfs的区别就在于队列取出时一轮是取出队列当中的全部元素

class Solution {
    public int orangesRotting(int[][] grid) {
        int[][] dirs = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};//记录四个方向
        int result=0;//记录需要的分钟数
        int fresh=0;//记录新鲜橘子的数目
        Queue<int[]> queue = new ArrayDeque<>();//队列存储腐烂橘子
        int m = grid.length, n = grid[0].length;
        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if(grid[i][j]==1)
                    fresh++;
                else if(grid[i][j]==2)
                    queue.add(new int[]{i, j});
            }
        }
        while (!queue.isEmpty()) {
            int len = queue.size();
            while (len-- != 0) {
                int[] coordinate = queue.remove();
                //腐化四个方向上的新鲜橘子
                for (int[] dir : dirs) {
                    int x = coordinate[0] + dir[0];
                    int y = coordinate[1] + dir[1];
                    if(x<0||y<0||x>=m||y>=n||grid[x][y]!=1)
                        continue;
                    queue.add(new int[]{x, y});
                    grid[x][y]=2;
                    fresh--;
                }
            }
            if(!queue.isEmpty())//下一轮还有
                result++;
        }
        if(fresh>0)
            return -1;
        else
            return result;
    }
}

 

http://www.dtcms.com/a/102380.html

相关文章:

  • 使用 2 端口探头测量 40 uOhm(2000 安培)PDN 的挑战 – 需要多少 CMRR?
  • 航空记录器(黑匣子)未来发展趋势
  • Spring MVC 中<mvc:resources> 的两种配置中,`classpath:/static/`和`/static/`有什么不同
  • Python爬虫教程005:ajax的get请求豆瓣电影排行榜
  • html中img标签直接使用border-radius时会图片进行了遮挡
  • 被誉为开源RTOS的天花板ThreadX
  • 【Linux笔记】系统中的权限管理及优化
  • Linux 编程环境
  • Dify 深度集成 MCP实现灾害应急响应
  • CVP介绍
  • C语言函数
  • ThingsBoard移动应用详细讲解
  • Redis简介
  • 支付宝沙箱支付报错“订单信息无法识别,建议联系卖家”
  • NOIP2017提高组.宝藏
  • 【强化学习】Deep Reinforcement Learning: A Survey综述学习
  • fast_pow(),c语言幂函数
  • 性能比拼: Go(Gin) vs Python(Flask)
  • 按规则批量修改 txt/html/json/xml/csv/记事本等文本文件内容
  • 【企业级Web应用中的文件下载处理:从S3预签名URL到压缩状态管理】
  • 24、网络编程基础概念
  • Appscan下载及安装教程
  • Vue3中的Icon理方案
  • OCR第三个方案:PP-OCRv4的初步探索
  • 2015年国家队选拔赛试题改编题
  • 基于卷积神经网络的眼疾识别系统,resnet50,efficentnet(pytorch框架,python代码)
  • 什么是开发者社区(Developer Communities)?
  • OCCT(2)Windows平台编译OCCT
  • 【大模型】微调一个大模型需要多少 GPU 显存?
  • 论文阅读《P​roximal Curriculum for Reinforcement Learning Agents》——提升智能体学习速度的