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

算法题(100):腐烂的苹果

审题:

本题需要我们判断苹果是否可以完全腐烂,若可以完全腐烂,那么最短腐烂的所需时间是多少

思路:

方法一:多源BFS

首先我们分析腐烂过程,第一批腐烂苹果开始扩散,然后第二批腐烂苹果继续扩散,直到没有可以腐烂的苹果或者没有新鲜苹果为止

那么我们就可以通过多源bfs来模拟多个苹果一起腐烂并加入新一批腐烂苹果的过程

解题:

(1)变量创建

我们需要利用队列存储当前批次腐烂的苹果以及下一批次腐烂的苹果

freshapple的记录是为了最后判断是否有苹果永不腐烂

(2)将腐烂苹果加入队列,并记录新鲜苹果的数量

我们将腐烂苹果加入队列,遇到新鲜苹果就让freshapple++

(3)创建方向数组,便于进行上下左右移动传播

方向数组用于保存四个方向的移动坐标,实现扩散的目的

(4)进行bfs搜索,模拟腐烂过程

1.我们进行腐烂模拟的前提条件是还有待腐烂传播的苹果以及还有新鲜苹果。

2.第一步是将当前批次的腐烂苹果数量记录下来,然后对这些苹果依次进行上下左右传播,若遇到新鲜苹果就改为腐烂苹果,新鲜苹果数量--,并将它的坐标加入腐烂队列中

3.每进行一批传播就将minute++

(5)判断情况进行返回

如果还有新鲜苹果就返回-1,否则返回分钟数

腐烂的苹果_牛客题霸_牛客网​​​​​​

相关文章:

  • js 给元素添加点击事件的方法
  • 【测试篇】关于allpairs实现正交测试用例保姆级讲解,以及常见的错误问题
  • EagleTrader为何重申重要数据前后2分钟禁止交易?
  • 【算法学习计划】动态规划 -- 回文串问题
  • React前端开发中实现断点续传
  • CSS - Pseudo-classes(伪类选择器)
  • TypeScript类型兼容性 vs JavaScript动态类型:深入对比解析
  • 共享经济再中介化进程中的技术创新与模式重构研究——以“开源AI智能名片链动2+1模式S2B2C商城小程序“为例
  • python | 输入日期,判断这一天是这一年的第几天
  • 分布式 IO 模块:氢能源安全高效储运的智能钥匙
  • 项目中使用柯里化函数
  • 优选算法系列(2.滑动窗口 _ 上)
  • 基于CPLD+MCU的3U机箱数字量输入采集板DI,主要针对标准DC110V开关量信号进行采集处理
  • 【CPU】CPU多级缓存和MESI一致性协议
  • 基于System V的共享内存函数使用指南
  • 云原生混合云管理:跨集群智能编排引擎
  • NumPy系列 - 创建矩阵
  • 青少年编程与数学 02-011 MySQL数据库应用 02课题、MySQL数据库安装
  • 微服务架构中10个常用的设计模式
  • GUI编程和TKinter介绍
  • 陈刚:推动良好政治生态和美好自然生态共生共优相得益彰
  • 美国贸易政策|特朗普模式:你想做交易吗?
  • 《日出》华丽的悲凉,何赛飞和赵文瑄演绎出来了
  • 多地举办演唱会等吸引游客刺激消费,经济日报:引导粉丝经济理性健康发展
  • 湃书单|澎湃新闻编辑们在读的14本书:后工作时代
  • 讲武谈兵|视距外的狙杀:从印巴空战谈谈超视距空战