腐烂橘子图问题

news/2025/2/12 8:05:15/
class Solution {
public:int orangesRotting(vector<vector<int>>& grid) {std::queue<std::pair<int, int>> qe; // 保存烂橘子得i,j坐标int fresh = 0; // 记录新鲜水果数量for (int i=0; i<grid.size(); i++) {for (int j=0; j<grid[i].size(); j++) {if (grid[i][j]==2) qe.push({i,j});else if (grid[i][j] == 1) fresh++;}}int count = 0; // 返回次数// 烂橘子移动坐标,上下左右std::vector<std::pair<int, int>> dirts{{-1,0}, {1,0}, {0,1}, {0,-1}};while(!qe.empty()) {int size = qe.size(); // 当前队列大小bool flag = false;    //  标记每层是否出现橘子腐烂,腐烂了count+1while(size>0){auto pair = qe.front();qe.pop();// 对四个方向上得橘子进行判断for (auto direct: dirts) {int i = pair.first + direct.first;int j = pair.second + direct.second;// 校验移动得新坐标i,j,并且移动后当前时新鲜橘子更新为烂橘子if (i>=0 && i<grid.size() && j>=0 && j<grid[0].size() && grid[i][j] == 1) {grid[i][j] = 2; // 更新烂橘子qe.push({i,j}); // 将新烂橘子坐标添加到队列中fresh--;        // 新鲜橘子数量-1flag = true;    // 标记有出现向四周腐烂橘子情况}}size--;}if (flag) count++; // 只有腐烂了才会次数+1,可能出现孤立腐烂橘子}return fresh ? -1 : count;}
};

http://www.ppmy.cn/news/1122153.html

相关文章

excel功能区(ribbonx)编程笔记--5 菜单

菜单,故名词义,就是可以让使用者采用选择的方式选取要执行的选项,不用的时候,是收缩起来的,不占用界面控件,操作界面友好。 乍看起来,菜单好像和dropdown一样,然而,下拉控件的一个主要局限是仅能包含“项目”,而菜单控件可以包含各种各样的其它控件,包括按钮、复选…

R语言逻辑回归、决策树、随机森林、神经网络预测患者心脏病数据混淆矩阵可视化...

全文链接:https://tecdat.cn/?p33760 众所周知&#xff0c;心脏疾病是目前全球最主要的死因。开发一个能够预测患者心脏疾病存在的计算系统将显著降低死亡率并大幅降低医疗保健成本。机器学习在全球许多领域中被广泛应用&#xff0c;尤其在医疗行业中越来越受欢迎。机器学习可…

Qt5开发及实例V2.0-第二十一章-Qt.Quick Controls开发基础

Qt5开发及实例V2.0-第二十一章-Qt.Quick Controls开发基础 第21章 Qt Quick Controls开发基础21.1 Qt Quick Controls概述21.1.1 第一个Qt Quick Controls程序21.1.2 Qt Quick窗体应用程序的构成 21.2 Qt Quick控件21.2.1 概述21.2.2 基本控件21.2.3 高级控件21.2.4 样式定制 2…

Ubuntu中无法git clone,一直连接不上的解决方法

我的环境 我的电脑是Windows的&#xff0c;CFW也装在Windows中。 解决思路 其实能ping通google就能git clone。 解决步骤 在CFW主页中安装服务模式打开TUN模式重启Ubuntu能ping通了

iOS加固保护技术:保护你的iOS应用免受恶意篡改

目录 转载&#xff1a;开始使用ipaguard 前言 下载ipa代码混淆保护工具 获取ipaguard登录码 代码混淆 文件混淆 IPA重签名与安装测试 转载&#xff1a;开始使用ipaguard 前言 iOS加固保护是直接针对ios ipa二进制文件的保护技术&#xff0c;可以对iOS APP中的可执行文件…

【数据结构】七大排序算法详解

目录 ♫什么是排序 ♪排序的概念 ♪排序的稳定性 ♪排序的分类 ♪常见的排序算法 ♫直接插入排序 ♪基本思想 ♪算法实现 ♪算法稳定性 ♪时间复杂度 ♪空间复杂度 ♫希尔排序 ♪基本思想 ♪算法实现 ♪算法稳定性 ♪时间复杂度 ♪空间复杂度 ♫直接选择排序 ♪基本思想 ♪算法…

代码随想录算法训练营第四十六天 | 139. 单词拆分 背包小结

1. 单词拆分 139. 单词拆分 - 力扣&#xff08;LeetCode&#xff09; class Solution {public boolean wordBreak(String s, List<String> wordDict) {//背包 s//物品 从s中截取出来的字串&#xff0c;看在不在dict里HashSet<String> set new HashSet<>(w…

【LeetCode】——双指针(快慢指针)/多指针

个人主页 代码仓库 C语言专栏 初阶数据结构专栏 Linux专栏 前言 大家好&#xff01;这是新开的LeetCode刷题专栏&#xff0c;这个专栏不只是随便的拿一些我练过的题讲解&#xff0c;而是总结我在刷题中的一些方法适用于一大类的题&#xff0c;是给大家提供这一大类题的解题…