模拟算法,模拟腐烂的过程

class Solution994 {public static void main(String[] args) {Solution994 solution994 = new Solution994();int i = solution994.orangesRotting(new int[][]{new int[]{1, 2}});System.out.println(i);}public int orangesRotting(int[][] grid) {if (!hasXinxian(grid))return 0;for (int i = 1; i < Integer.MAX_VALUE; i++) {if (!rot(grid, i)) {if (hasXinxian(grid))return -1;elsereturn i - 1;}}return -1;}public boolean hasXinxian(int[][] grid) {for (int i = 0; i < grid.length; i++) {for (int j = 0; j < grid[0].length; j++) {if (grid[i][j] == 1)return true;}}return false;}public boolean rot(int[][] grid, int cishu) {boolean result = false;for (int i = 0; i < grid.length; i++) {for (int j = 0; j < grid[0].length; j++) {if (grid[i][j] >= 2 && grid[i][j] < cishu + 2) {if (i - 1 >= 0 && grid[i - 1][j] == 1) {grid[i - 1][j] = cishu + 2;result = true;}if (i + 1 < grid.length && grid[i + 1][j] == 1) {grid[i + 1][j] = cishu + 2;result = true;}if (j - 1 >= 0 && grid[i][j - 1] == 1) {grid[i][j - 1] = cishu + 2;result = true;}if (j + 1 < grid[i].length && grid[i][j + 1] == 1) {grid[i][j + 1] = cishu + 2;result = true;}}}}return result;}
}

leetcode-994 模拟算法相关推荐

  1. LeetCode:贪心算法(30道经典题目)

    LeetCode:贪心算法 求解最优化的问题常常会有一系列的步骤,而每个步骤往往会面临着选择.贪心算法在每一步都做出最优解,寄希望于通过局部最优解来获得全局最优解.贪心算法往往是这种自顶向下的设计,先 ...

  2. 技术图文:如何在leetcode上进行算法刻意练习?

    背景 众所周知,通过刻意练习高质量的题目可以加深我们对计算机科学中经典数据结构的深刻理解,从而可以快速用合适的数据结构去解决现实中的问题.而LeetCode就是一个收集了各大IT公司的笔试面试题的在线 ...

  3. 新模拟算法揭秘加州地震史:更准确有效

    晗锋 发自 凹非寺 量子位 报道 | 公众号 QbitAI 山火.地震.大气污染--近来频发的自然灾害,令加州人民头秃. 为此,来自南加州地震中心.哥伦比亚大学.加州大学等的研究人员决心,用计算机模拟 ...

  4. leetcode旋转数组 c语言,leetcode explore 初级算法第三题,旋转数组代码实现

    leetcode explore 初级算法第三题,旋转数组代码实现.原题链接: 题目分析 因为题目不是很长,这里把题目贴出来: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. ...

  5. ACM竞赛学习整理--模拟算法举例POJ1068

    什么是模拟 仅仅使用较简单的算法和数据结构的题目. 模拟顾名思义,就是按照题目的要求,一步步写出代码. 常见的模拟方法 a.用数学量和图形描述问题 计算机处理的是数学量.若要用计算机解决实际问题,需要 ...

  6. [JavaScript 刷题] 搜索 - 腐烂的橘子, leetcode 994

    [JavaScript 刷题] 搜索 - 腐烂的橘子, leetcode 994 唉--之前写过笔记总结的问题,还是又卡住了. 自挂东南枝-- 题目地址: Rotting Oranges 题目如下: ...

  7. 模拟算法考试训练题和答案1

    模拟算法考试训练题和答案1 前三个问题应该会刷新你的记忆,最后三个问题需要一些思考.回顾命题的基础逻辑你可以阅读 Moller 和 Struth 书中的温和介绍. 热身任务:在互联网上搜索您最喜欢的计 ...

  8. 1. 通用基础算法(1.7动态规划算法/1.8模拟算法/1.9其他算法)

    7  动态规划算法 动态规划(Dynamic Programming)是求多阶段决策过程(Multistep Decision Process)最优化的一种数学方法,它将问题的整体按时间或空间的特征分 ...

  9. LeetCode数据结构与算法学习Day03

    LeetCode数据结构与算法学习Day03 图解数据结构与算法 59 I 滑动窗口最大值 题目描述: 解题思路: 59 II 队列的最大值 题目描述: 解题思路: 67 把字符串转换成整数 题目描述 ...

最新文章

  1. 微软副总裁、Kubernetes 头号贡献者的他,给云原生带来奇迹!
  2. 软件工程实践第二次作业——个人项目实战(数独)
  3. Java SE(2)
  4. .html?t=1a=2类似传递参数到flex中
  5. 特定场景下取代if-else和switch的方式
  6. 用GA算法设计22个地点之间最短旅程-R语言实现
  7. STM32CubeMx开发之路—13使用SPI读写W25Q64
  8. AUC(ROC曲线下方的面积大小)
  9. 柠檬班python自动化百度云_带三开头的名字女孩名字大全
  10. AI代替30%班主任工作 尚德机构督学机器人上线
  11. 970万,看美女是如何炼成巨贪的!
  12. 获取处于选中状态的checkbox的id值
  13. 有必要获得WHQL测试认证吗,有什么好处?
  14. Python基本数据类型--列表
  15. QT tableview内置控件
  16. getchar()用法 与 getch()函数使用方法
  17. 一加手机6t鸿蒙rom,一加6T官方原厂固件rom刷机包_OnePlus 6T最新升级包更新
  18. In-class Initialization
  19. 引入阿里云SDK,类找不到的问题
  20. 2018.8.4T2(贪心,dp,线段树,优先队列)

热门文章

  1. 5G中的物联网技术与未来演进方向,路在何方?
  2. cc2530无线模块原理图_拆解报告:亚马逊10.or Buds真无线蓝牙耳机
  3. 黑客们的故事连载十二 “蠕虫来袭”:莫里斯
  4. 基本的信号——阶跃信号与阶跃序列
  5. 元学习MAML算法详解
  6. Duilib 加载资源文件失败,点击黑屏
  7. java gif合成_java图片处理——多张图片合成一张Gif图片并播放或Gif拆分成多张图片...
  8. 苹果手机使用快捷指令实现钉钉自动打开
  9. 阿里技术专家:技术中台/移动中台/研发中台,16页PPT一次讲透!
  10. 夜光带你走进C# winform 操作mysql数据库(二十三)擅长的领域