Leetcode--994. 腐烂的橘子(java)

在给定的网格中,每个单元格可以有以下三个值之一:

值 0 代表空单元格;
值 1 代表新鲜橘子;
值 2 代表腐烂的橘子。
每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。

返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。

 

示例 1:

输入:[[2,1,1],[1,1,0],[0,1,1]]
输出:4
示例 2:

输入:[[2,1,1],[0,1,1],[1,0,1]]
输出:-1
解释:左下角的橘子(第 2 行, 第 0 列)永远不会腐烂,因为腐烂只会发生在 4 个正向上。
示例 3:

输入:[[0,2]]
输出:0
解释:因为 0 分钟时已经没有新鲜橘子了,所以答案就是 0 。
 

提示:

1 <= grid.length <= 10
1 <= grid[0].length <= 10
grid[i][j] 仅为 0、1 或 2

代码:

class Solution {

    public int orangesRotting(int[][] grid) {

        if(grid.length==0)

        {

            return 0;

        }

        int count=1,k=3;//count表示每次遍历有没有新增腐烂的,k表示这是第几次腐烂的,3开始是第一次

        while(count!=0)

        {

            for(int i=0;i<grid.length;i++)

            {

                if(i==0)

                {

                    count = 0;

                }

                for(int j =0;j<grid[0].length;j++)

                {

                    if(grid[i][j]==0)

                    {

                        continue;

                    }

                    if(grid[i][j]==1)

                    {

                        if(i>0&&grid[i-1][j]>=2&&grid[i-1][j]<k)

                        {

                            count++;

                            grid[i][j]=k;

                        }

                        else if(i<grid.length-1&&grid[i+1][j]>=2&&grid[i+1][j]<k)

                        {

                            count++;

                            grid[i][j] = k;

                        }

                        else if(j>0&&grid[i][j-1]>=2&&grid[i][j-1]<k)

                        {

                            count++;

                            grid[i][j] = k;

                        }

                        else if(j<grid[0].length-1&&grid[i][j+1]>=2&&grid[i][j+1]<k)

                        {

                            count++;

                            grid[i][j] = k;

                        }

                    } 

                }

            }

            k++;

        }

        for(int i=0;i<grid.length;i++)

        {

            for(int j =0;j<grid[0].length;j++)

            {

                if(grid[i][j]==1)

                {

                    return -1;

                }

            }

        }

        return k - 4;

    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CICC科普栏目丨时间之箭:从熵到大爆炸再到万物理论(一)

来源&#xff1a;BBC转自&#xff1a;数学加油吧假设有这么一天&#xff0c;你在家里感到无聊&#xff0c;你把几个鸡蛋顶在头上表演起杂耍&#xff0c;但你的表演不太成功&#xff0c;鸡蛋打碎糊了你一脸。现在你将不得不去洗下脸再冲个澡&#xff0c;然后换上一身新衣服。那为…

NOIP2007 树网的核

传送门 最近搞一搞树型结构……毕竟自己树的知识学的太垃圾了。 首先这道题非常明显要求树的直径。树的直径有好多好多种求法&#xff0c;这里我选择了一位dalao的非常简洁的dfs的方法。先看一下代码。 void dfs(int x) {for(int i head[x];i;i e[i].next){if(fa[x] e[i].to…

只有这种AI芯片才能拯救人工智能?

来源&#xff1a;内容由半导体行业观察&#xff08;ID&#xff1a;icbank&#xff09;编译&#xff1a;「wired」人工智能不断发展&#xff0c;对保持AI运行所需的计算能力的渴望也与日俱增。Lightmatter&#xff0c;一家诞生于MIT的初创公司&#xff0c;他们正在押注一款使用光…

【剑指offer】面试题33:二叉搜索树的后序遍历序列(Java)

输入一个整数数组&#xff0c;判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true&#xff0c;否则返回 false。假设输入的数组的任意两个数字都互不相同。 参考以下这颗二叉搜索树&#xff1a; 5 / \ 2 6 / \ 1 3 示例 1&#xff1a; 输入: [1,6,…

CSS 小结笔记之文字溢出处理

有时文字会溢出盒子&#xff0c;这时一般要对文字进行溢出处理。一般有以下三种处理方法&#xff1a; 1、word-break:normal | break-all |keep-all normal 使用浏览器默认的换行 break-all 允许单词内换行即允许单词拆开显示 keep-all 不允许拆开单词显示&#xff0c;连字符除…

GPT-2大战GPT-3:OpenAI内部的一场终极对决

作者&#xff1a;Kevin Vu译者&#xff1a;Sambodhi策划&#xff1a;刘燕由于在训练过程中使用的数据集的多样性&#xff0c;我们可以为来自不同领域的文本获得足够的文本生成。GPT-2 的参数和数据是其前代 GPT 的 10 倍。而 GPT-3 又是 GPT-2 的 10 倍。那么问题来了&#xff…

【剑指offer】面试题34:二叉树中和为某一值的路径(Java)

输入一棵二叉树和一个整数&#xff0c;打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例: 给定如下二叉树&#xff0c;以及目标和 sum 22&#xff0c; 5 / \ 4 8 / …

AI解梦成为现实,贝尔实验室新算法尝试找到梦境的隐藏含义

文章来源&#xff1a; 学术头条古代巴比伦人认为梦境包含了预言&#xff0c;而古埃及人则将梦境视为神灵给予的信息来崇拜。在 19 世纪 90 年代&#xff0c;西格蒙德弗洛伊德&#xff08;Sigmund Freud&#xff09;为梦境里面的人物、物体和场景分配了象征意义&#xff0c;并着…

个人项目:wc程序(java)

Github项目地址&#xff1a;https://github.com/jat0824/wc.git 项目相关要求 wc.exe 是一个常见的工具&#xff0c;它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序&#xff0c;模仿已有wc.exe 的功能&#xff0c;并加以扩充&#xff0c;给出某程序设计…

【剑指offer】面试题35:复杂链表的复制(Java)

请实现 copyRandomList 函数&#xff0c;复制一个复杂链表。在复杂链表中&#xff0c;每个节点除了有一个 next 指针指向下一个节点&#xff0c;还有一个 random 指针指向链表中的任意节点或者 null。 示例 1&#xff1a; 输入&#xff1a;head [[7,null],[13,0],[11,4],[10,2…

【综述专栏】图神经网络综述

来源&#xff1a;图灵人工智能作者&#xff1a;王健宗等https://wwwihcm/people/euu-lin-jun-7原文链接&#xff1a;https://kns.cnki.net/kcms/detail/31.1289.tp.20201123.1641.002.html摘要&#xff1a;随着计算机行业和互联网时代的不断发展与进步&#xff0c;图神经网络已…

HDFS设计思想

HDFS设计思想 DataNode&#xff1a;用来在磁盘上存储数据 HDFS 数据存储单元&#xff08; block &#xff09; 1 文件被切分成固定大小的数据block块 •默认数据块大小为 64MB(hadoop1.x版本64M&#xff0c;2.x为128M) &#xff0c;可配置 •若文件大小不到 64MB &#xff…

【剑指offer】面试题25:合并两个排序的链表(Java)

输入两个递增排序的链表&#xff0c;合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1&#xff1a; 输入&#xff1a;1->2->4, 1->3->4 输出&#xff1a;1->1->2->3->4->4 限制&#xff1a; 0 < 链表长度 < 1000 代码&#xff…

被认为是世界史上50个最伟大的发明有哪些?

来源&#xff1a;数学中国根据美国《大西洋月刊》杂志邀请了世界上12位科学家、技术史专家、工程师、企业高管组成的专家团为世界遴选自车轮&#xff08;车轮的广泛使用一般被认为始于6000年前&#xff09;问世后的50个最伟大的发明。其中&#xff0c;中国的四大发明均在其中。…

numpy中的tile函数

在阅读《机器学习实战》一书中&#xff0c;第一次碰见tile函数一脸懵逼&#xff0c;试验了几次之后&#xff0c;明白了怎么回事&#xff0c;记录如下&#xff1a; >>> import numpy >>> numpy.tile([0,0],5)#在列方向上重复[0,0]5次&#xff0c;默认行1次 ar…

js几种常见排序的实现

1. 冒泡排序 定义&#xff1a; 比较相邻的前后二个数据&#xff0c;如果前面数据大于后面的数据&#xff0c;就将二个 数据交换。 这样对数组的第0个数据到N-1个数据进行一次遍历后&#xff0c;最大的一个数据就“沉”到数组第N-1个位置。 NN-1&#xff0c;如果N不为0就重复前…

Leetcode--695. 岛屿的最大面积

给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。 找到给定的二维数组中最大的岛屿面积。(如果没有岛屿&#xff0c;则返回面积为0。) 示例 1: [[0,0,1,0,0,0…

“NP问题是可计算的吗?” - 从“可计算性”的角度审视NP

来源&#xff1a;图灵人工智能转自 http://blog.sciencenet.cn/u/liuyu2205P vs NP世纪难题显示出在现有的计算机理论中存在着令人不安的困惑&#xff1a;一方面&#xff0c;书本中的NP问题理论部份无论是学习或教学都感到困难&#xff0c;以至于人们不得不一次又一次回头去重新…

日志模块-logging模块

日志模块 -logging(非常重要) 记录用户行为程序运行过程程序错误记录logging.debug()通常调试时用到的日志信息logging.info() #证明事情按照预期的那样工作longging.warning() #表明发生了意外&#xff0c;或者不就得将来发生的问题&#xff08;如&#xff1a;磁盘满了&#x…

Leetcode--字符串压缩

字符串压缩。利用字符重复出现的次数&#xff0c;编写一种方法&#xff0c;实现基本的字符串压缩功能。比如&#xff0c;字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短&#xff0c;则返回原先的字符串。你可以假设字符串中只包含大小写英文字母&#xff08;a…