国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【LeetCode-中等題】994. 腐爛的橘子

這篇具有很好參考價值的文章主要介紹了【LeetCode-中等題】994. 腐爛的橘子。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

題目

【LeetCode-中等題】994. 腐爛的橘子,# 中等題,力扣,leetcode,算法,職場和發(fā)展

該題值推薦用bfs,因?yàn)槭且粚右粚拥母腥?,而不是一條線走到底的那種,所以深度優(yōu)先搜索不適合

方法一:bfs+層序遍歷

廣度優(yōu)先搜索,就是從起點(diǎn)出發(fā),每次都嘗試訪問同一層的節(jié)點(diǎn),如果同一層都訪問完了,再訪問下一層,最后廣度優(yōu)先搜索找到的路徑就是從起點(diǎn)開始的最短合法路徑。

在該題:假設(shè)圖中只有一個腐爛的橘子,它每分鐘向外拓展,腐爛上下左右相鄰的新鮮橘子,那么下一分鐘,就是這些被腐爛的橘子再向外拓展腐爛相鄰的新鮮橘子,這與廣度優(yōu)先搜索的過程均一一對應(yīng),上下左右相鄰的新鮮橘子就是該腐爛橘子嘗試訪問的同一層的節(jié)點(diǎn),路徑長度就是新鮮橘子被腐爛的時間。
【LeetCode-中等題】994. 腐爛的橘子,# 中等題,力扣,leetcode,算法,職場和發(fā)展文章來源地址http://www.zghlxwxcb.cn/news/detail-693735.html

class Solution {
// 方法一 : bfs   
    int m = 0;
    int n = 0;//  全局 格子寬度和長度
    int minute = 0;//全局  最小分鐘數(shù)
    int fulash = 0;// 記錄1的個數(shù)
    public int orangesRotting(int[][] grid) {
       m = grid.length;
       n = grid[0].length;
       Queue<int[]> queue = new LinkedList<>();
       for(int i = 0; i<m ; i++)
       for(int j = 0; j<n ; j++){
           if(grid[i][j] == 1 ) fulash++;//記錄新鮮橘子的個數(shù)
           if(grid[i][j] == 2 ){
               grid[i][j] = 2;
               queue.offer(new int[]{i,j});//將壞橘子坐標(biāo)數(shù)組 存入隊(duì)列
               
           }
       }
        //層序遍歷
          while(!queue.isEmpty() && fulash > 0){// 當(dāng)隊(duì)列空了 或者 沒有新鮮橘子了,停止循環(huán)
                    int size = queue.size();
                    minute++;// 一層一層的傳染,每傳染一層,時間+1
                for(int i = 0 ; i<size ;i++){
                   int[] mid = queue.poll();
                   int x = mid[0];
                   int y = mid[1];
                   //上
                   if(x+1 < m && grid[x+1][y]== 1 ){
                       fulash--; // 每傳染一個,更新新鮮橘子的數(shù)量
                      grid[x+1][y] = 2;//將新鮮果子感染
                      queue.offer(new int[]{x+1,y});//將感染的果子加入隊(duì)列,進(jìn)行下一層的處理

                   }
                   //下
                   if(x-1 >=0 && grid[x-1][y]== 1 ){
                         fulash--;
                       grid[x-1][y] = 2;
                       queue.offer(new int[]{x-1,y});
                        
                   }
                   //右
                   if(y+1 < n && grid[x][y+1]== 1 ){
                         fulash--;
                       grid[x][y+1] = 2;
                       queue.offer(new int[]{x,y+1});
                        
                   }
                   //左
                   if(y-1 >=0 && grid[x][y-1]== 1 ){
                         fulash--;
                       grid[x][y-1] = 2;
                       queue.offer(new int[]{x,y-1});  
                   }
            }

                
        }

        if(fulash > 0) return -1;//若還有新鮮橘子  則返回-1
        else  return minute;//無新鮮橘子  則返回minute
    }

}

到了這里,關(guān)于【LeetCode-中等題】994. 腐爛的橘子的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【貪心算法】Leetcode 55. 跳躍游戲【中等】

    給你一個非負(fù)整數(shù)數(shù)組 nums ,你最初位于數(shù)組的 第一個下標(biāo) 。數(shù)組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達(dá)最后一個下標(biāo),如果可以,返回 true ;否則,返回 false 。 示例 1: 輸入 :nums = [2,3,1,1,4] 輸出: true 解釋 :可以先跳 1 步,從下標(biāo)

    2024年04月28日
    瀏覽(91)
  • LeetCode_貪心算法_中等_763.劃分字母區(qū)間

    給你一個字符串 s 。我們要把這個字符串劃分為盡可能多的片段,同一字母最多出現(xiàn)在一個片段中。注意,劃分結(jié)果需要滿足:將所有劃分結(jié)果按順序連接,得到的字符串仍然是 s。返回一個表示每個字符串片段的長度的列表。 示例 1: 輸入:s = “ababcbacadefegdehijhklij” 輸出

    2024年02月14日
    瀏覽(302)
  • [Java·算法·中等] LeetCode122. 買股票的最佳時機(jī) II 解讀

    [Java·算法·中等] LeetCode122. 買股票的最佳時機(jī) II 解讀

    人不走空 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? 目錄 ? ????????個人主頁:人不走空?????? ??系列專欄:算法專題 ?詩詞歌賦:斯是陋室,惟吾德馨 題目 示例 示例1 示例2 示例3? 提示? 詳細(xì)解讀 作者其他作品: ? 給你一

    2024年02月19日
    瀏覽(21)
  • 算法學(xué)習(xí)——LeetCode力扣回溯篇2

    算法學(xué)習(xí)——LeetCode力扣回溯篇2

    40. 組合總和 II - 力扣(LeetCode) 描述 給定一個候選人編號的集合 candidates 和一個目標(biāo)數(shù) target ,找出 candidates 中所有可以使數(shù)字和為 target 的組合。 candidates 中的每個數(shù)字在每個組合中只能使用 一次 。 注意:解集不能包含重復(fù)的組合。 示例 示例 1: 輸入: candidates = [10,1,2,7

    2024年02月20日
    瀏覽(21)
  • 力扣(LeetCode)算法_C++—— 快樂數(shù)

    編寫一個算法來判斷一個數(shù) n 是不是快樂數(shù)。 「快樂數(shù)」 定義為: 對于一個正整數(shù),每一次將該數(shù)替換為它每個位置上的數(shù)字的平方和。 然后重復(fù)這個過程直到這個數(shù)變?yōu)?1,也可能是 無限循環(huán) 但始終變不到 1。 如果這個過程 結(jié)果為 1,那么這個數(shù)就是快樂數(shù)。 如果 n 是

    2024年02月09日
    瀏覽(21)
  • 力扣(LeetCode)算法_C++—— 存在重復(fù)元素

    給你一個整數(shù)數(shù)組 nums 。如果任一值在數(shù)組中出現(xiàn) 至少兩次 ,返回 true ;如果數(shù)組中每個元素互不相同,返回 false 。 示例 1: 輸入:nums = [1,2,3,1] 輸出:true 示例 2: 輸入:nums = [1,2,3,4] 輸出:false 示例 3: 輸入:nums = [1,1,1,3,3,4,3,2,4,2] 輸出:true 提示: 1 = nums.length = 105 -1

    2024年02月09日
    瀏覽(28)
  • 刷力扣 LeetCode 算法題需要充值會員嗎?

    刷力扣 LeetCode 算法題需要充值會員嗎?

    大家好,我是『負(fù)雪明燭』。 在過去的這些年里,我的一項(xiàng)業(yè)余愛好就是寫作算法題解。如今寫了上千篇題解了! 在 CSDN 上,我的博客獲得了 200 多萬的閱讀。 在力扣中國題解區(qū),我也獲得了180 萬的閱讀。 當(dāng)然,這些多歸功于粉絲們的關(guān)注與支持??!謝謝各位?。?我一直

    2024年02月09日
    瀏覽(21)
  • 算法學(xué)習(xí)——LeetCode力扣字符串篇

    算法學(xué)習(xí)——LeetCode力扣字符串篇

    344. 反轉(zhuǎn)字符串 - 力扣(LeetCode) 描述 編寫一個函數(shù),其作用是將輸入的字符串反轉(zhuǎn)過來。輸入字符串以字符數(shù)組 s 的形式給出。 不要給另外的數(shù)組分配額外的空間,你必須原地修改輸入數(shù)組、使用 O(1) 的額外空間解決這一問題。 示例 示例 1: 輸入:s = [“h”,“e”,“l(fā)”

    2024年02月20日
    瀏覽(22)
  • LeetCode面試算法-力扣 88. 合并兩個有序數(shù)組

    88. 合并兩個有序數(shù)組 題目描述 ? ? 給你兩個按 非遞減順序 排列的整數(shù)數(shù)組 nums1 和 nums2,另有兩個整數(shù) m 和 n ,分別表示 nums1 和 nums2 中的元素?cái)?shù)目。請你 合并 nums2 到 nums1 中,使合并后的數(shù)組同樣按 非遞減順序 排列。 注意: 最終,合并后數(shù)組不應(yīng)由函數(shù)返回,而是存儲

    2024年02月10日
    瀏覽(20)
  • 力扣(LeetCode)算法_C++—— 兩個數(shù)組的交集

    給定兩個數(shù)組 nums1 和 nums2 ,返回 它們的交集 。輸出結(jié)果中的每個元素一定是 唯一 的。我們可以 不考慮輸出結(jié)果的順序 。 示例 1: 輸入:nums1 = [1,2,2,1], nums2 = [2,2] 輸出:[2] 示例 2: 輸入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 輸出:[9,4] 解釋:[4,9] 也是可通過的

    2024年02月09日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包