50.腐烂的橘子
1.题目描述在给定的m x n网格grid中每个单元格可以有以下三个值之一值0代表空单元格值1代表新鲜橘子值2代表腐烂的橘子。每分钟腐烂的橘子周围 4 个方向上相邻的新鲜橘子都会腐烂。返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能返回-1。2.题目思路这是通用的BFS思路关于图和树都可以用如二叉树的右视图计算二叉树的层数等题目depth 0 # 记录遍历到第几层 while queue 非空: depth n queue 中的元素个数 循环 n 次: node queue.pop() for node 的所有相邻结点 m: if m 未访问过: queue.push(m)3.代码及详细注释class Solution { public: int orangesRotting(vectorvectorint grid) { //1.计算腐烂橘子和好橘子并把腐烂橘子全都入队表示0min时刻 int count0; queuepairint,int q; int M grid.size(); int N grid[0].size(); for(int i 0;iM-1;i){ for(int j 0;jN-1;j){ if(grid[i][j]1){ count;//好橘子总数 } else if(grid[i][j]2){ q.push({i,j}); } } } if(count0) return 0; int round 0;//返回的结果 int fresh 0; while(fresh count !q.empty()){//注意这个条件最后个新鲜橘子即将被腐烂的状态grid[i][j]2fresh count了然后入队列被腐烂的橘子队列不为空还会进行一次判断. int n q.size(); round; while(n0){ int i q.front().first; int j q.front().second; q.pop(); if(i-10 grid[i-1][j]1){//top //污染橘子 fresh; grid[i-1][j]2; q.push({i-1,j}); } if(i1M-1 grid[i1][j]1){//down fresh; grid[i1][j]2; q.push({i1,j}); } if(j-10 grid[i][j-1]1){//left fresh; grid[i][j-1]2; q.push({i,j-1}); } if(j1N-1 grid[i][j1]1){//right fresh; grid[i][j1]2; q.push({i,j1}); } n--; } } if(count-fresh!0){ return -1; } return round; } };

相关新闻

基于Spring Boot的运动服装销售系统的设计与实现

基于Spring Boot的运动服装销售系统的设计与实现

🍅 作者主页:Selina .a 🍅 简介:Java领域优质创作者🏆、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作。 主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据…

2026/7/2 23:33:59 阅读更多 →
LangChain 实战:RunnableWithMessageHistory 深度详解

LangChain 实战:RunnableWithMessageHistory 深度详解

在构建聊天机器人(Chatbot)时,**“记忆”(Memory)**是核心能力之一。早期的 LangChain 使用 ConversationChain Memory 对象来管理历史,但在 LCEL(LangChain Expression Language)时…

2026/5/17 1:31:25 阅读更多 →
社会网络仿真软件:Pajek_(1).Pajek入门与基础操作

社会网络仿真软件:Pajek_(1).Pajek入门与基础操作

Pajek入门与基础操作 1. Pajek简介 Pajek 是一个用于大型网络分析和可视化的软件工具,广泛应用于社会网络分析、生物网络分析、信息网络分析等领域。Pajek 支持多种网络数据格式,提供了丰富的网络分析功能和可视化选项,使用户能够高效地处理…

2026/5/17 1:31:24 阅读更多 →

最新新闻

国密SM2双证书与数据信封技术:加密私钥安全存储实战指南

国密SM2双证书与数据信封技术:加密私钥安全存储实战指南

1. 项目概述:国密双证书与数据信封的深度碰撞最近在做一个金融行业的项目,对接方突然提出一个要求:所有敏感数据传输必须使用国密算法,并且要采用“双证书”模式配合“数据信封”技术来保护核心的加密私钥。这个组合拳一打出来&am…

2026/7/2 23:29:48 阅读更多 →
微信小程序MBTI测试源码包(含DeepSeek题库生成与结果解析)

微信小程序MBTI测试源码包(含DeepSeek题库生成与结果解析)

本文还有配套的精品资源,点击获取 简介:一套开箱即用的微信小程序MBTI人格测试源码,基于DeepSeek大模型能力实现题目动态生成、选项逻辑校验、答案智能解析及人格类型推导。代码包含多套结构化题库文件(questions.js及其变体&a…

2026/7/2 23:29:48 阅读更多 →
Web应用安全实战:从密码哈希到数据加密的cryptopasta最佳实践

Web应用安全实战:从密码哈希到数据加密的cryptopasta最佳实践

1. 项目概述:为什么我们需要“cryptopasta”?如果你正在构建一个需要处理用户密码、API密钥、会话令牌或者任何敏感数据的Web应用,那么“安全”这个词,就不再是一个可选项,而是一个必须从第一行代码就开始考虑的基石。…

2026/7/2 23:29:48 阅读更多 →
Kiran-shell 社区贡献指南:如何参与开源桌面面板项目开发

Kiran-shell 社区贡献指南:如何参与开源桌面面板项目开发

Kiran-shell 社区贡献指南:如何参与开源桌面面板项目开发 【免费下载链接】kiran-shell kiran Desktop Environment Latest panel 项目地址: https://gitcode.com/openeuler/kiran-shell 前往项目官网免费下载:https://ar.openeuler.org/ar/ Kir…

2026/7/2 23:29:48 阅读更多 →
嵌入式 C++ 文字识别 主流三种方案

嵌入式 C++ 文字识别 主流三种方案

嵌入式 C++ 文字识别 主流三种方案(按工业使用频率排序) 方案 1:PP-OCR + NCNN(市面最通用、首选) 构成 识别模型:百度 PP-OCR(DB 文本检测 + CRNN 文字识别) 推理引擎:NCNN(纯 C++ 轻量推理框架) 图像预处理:裁剪版 OpenCV 适用设备 RK 全系列、Jetson、IMX6UL…

2026/7/2 23:27:47 阅读更多 →
5步攻克res-downloader证书验证与反爬拦截实战指南

5步攻克res-downloader证书验证与反爬拦截实战指南

1. 项目概述:当res-downloader遇上证书与拦截如果你正在用res-downloader这类工具从特定网站批量下载资源,比如高清图片、文档或者视频素材,那么“证书信任”和“资源拦截”这两个词,大概率是你绕不过去的坎。我最近就刚处理完一个…

2026/7/2 23:25:46 阅读更多 →

日新闻

Path of Building PoE2:5步掌握流放之路2角色构建的终极免费工具

Path of Building PoE2:5步掌握流放之路2角色构建的终极免费工具

Path of Building PoE2:5步掌握流放之路2角色构建的终极免费工具 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 还在为《流放之路2》复杂的角色构建而头疼吗?面对上千个天赋节点…

2026/7/2 19:10:19 阅读更多 →
SSH密钥生成原理与跨平台安全实践指南

SSH密钥生成原理与跨平台安全实践指南

1. 为什么今天还必须亲手生成 SSH 密钥——不是“过时操作”,而是安全基建的起点你可能已经点开过几十次 GitHub 的 SSH 设置页,也见过终端里一闪而过的ssh-keygen -t ed25519 -C "your_emailexample.com"命令,但真正理解它在 macO…

2026/7/2 19:10:19 阅读更多 →
GAN工程化实战:从图像合成到物理建模的工业落地路径

GAN工程化实战:从图像合成到物理建模的工业落地路径

1. 项目概述:当GAN不再只是“画图玩具”,它正在悄悄重构现实世界的生产逻辑“Astonishing GAN Applications”——这个标题乍看像科技展会的宣传语,但在我过去三年深度参与17个GAN落地项目的实操经验里,它根本不是修辞&#xff0c…

2026/7/2 19:12:20 阅读更多 →

周新闻

月新闻