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

LeetCode:52.腐烂的橘子

目录

1.腐烂的橘子


1.腐烂的橘子

        用一个队列来保存腐烂的橘子的坐标,可以先遍历整个数组,如果没有新鲜的橘子直接返回0,否则的话保存好腐烂的橘子坐标,通过两个数组来模拟腐烂的过程,当一轮腐烂结束时,如果队列中还有腐烂的橘子,说明这一轮有新的橘子被腐烂,时间++,否则的话说明没有新的橘子被腐烂,最后,如果新鲜橘子数量为0,返回时间,否则返回-1

class Solution {
public:int orangesRotting(vector<vector<int>>& grid) {int m = grid.size(), n = grid[0].size();int fresh = 0, time = 0;queue<pair<int, int>> q;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) q.push({i, j});}if(fresh == 0) return 0;int dx[4] = {0, 0, 1, -1};int dy[4] = {1, -1, 0, 0};while(!q.empty() && fresh > 0){int currLevelSize = q.size();for(int i = 0; i < currLevelSize; i++){pair<int, int> p = q.front(); q.pop();for(int k = 0; k < 4; k++){int x = p.first + dx[k], y = p.second + dy[k];if(x >= 0 && x < m && y >= 0 && y < n && grid[x][y] == 1){grid[x][y] = 2;fresh--;q.push({x, y});}}}if(!q.empty()) time++;}return fresh == 0 ? time : -1;}
};

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

相关文章:

  • LeetCode算法日记 - Day 52: 求根节点到叶节点数字之和、二叉树剪枝
  • 四种方法解决——力扣189.轮转数组
  • ⸢ 伍-Ⅱ⸥ ⤳ 默认安全治理实践:水平越权检测 前端安全防控
  • 力扣856
  • Leetcode94.二叉数的中序遍历练习
  • 多种解法全解析——力扣217. 存在重复元素
  • 用python做的网站多吗二手书交易网站策划书
  • phpcms网站源码ui培训班多少钱
  • Android Studio 导入 opencv
  • 在线网站做成appdede网站地图样式修改
  • 全新尚界H5凭借HUAWEI XMC数字底盘引擎技术,让湿滑路面也“稳”操胜券
  • iOS 26 性能测试实战,如何评估启动速度、CPUGPU 负载、帧率与系统资源适配(uni-app 与 iOS 原生应用性能方案)
  • 腾讯会议→微课操作
  • html原生表格,实现左侧列固定
  • Idea提高开发效率的快捷键最佳学习方式
  • 做网站一定需要icp么中国建设协会官网
  • Selenium使用教程
  • 多线程——单例模式
  • 镜头调焦的 调整的是焦距还是像距?
  • (四)React+.Net+Typescript全栈(错误处理)
  • @ant-design/icons-vue 打包成多格式库
  • 什么是营销型网站?杭州建设教育网站
  • C++开发环境(VSCode + CMake + gdb)
  • JAVA CodeX精选实用代码示例
  • 肥东网站建设南京医院网站建设
  • Qt 多线程解析
  • ZooKeeper与Kafka分布式:从基础原理到集群部署
  • 免费网站服务器安全软件下载wordpress权限设置方法
  • three.js射线拾取点击位置与屏幕坐标映射
  • AutoMQ × Ververica:打造云原生实时数据流最佳实践!