日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

994. 腐烂的橘子

發布時間:2023/12/1 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 994. 腐烂的橘子 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

994.?腐爛的橘子

在給定的網格中,每個單元格可以有以下三個值之一:

  • 值?0?代表空單元格;
  • 值?1?代表新鮮橘子;
  • 值?2?代表腐爛的橘子。

每分鐘,任何與腐爛的橘子(在 4 個正方向上)相鄰的新鮮橘子都會腐爛。

返回直到單元格中沒有新鮮橘子為止所必須經過的最小分鐘數。如果不可能,返回?-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
  • var orangesRotting = function(grid) {if(grid.length === 0) return 0;let enumOrange = [[1,0],[0,1],[-1,0],[0,-1]],freshNum = 0,rots = [],x = grid.length,y = grid[0].length,step=0;for(let i=0; i<x; i++){for(let j=0; j<y; j++){if(grid[i][j] === 1){freshNum++;}else if(grid[i][j]===2){rots.push([i, j])}}}if(freshNum === 0) return 0;while(rots.length){if(freshNum === 0) return step;step++;let num = rots.length;for (let i = 0; i < num; i++) {let curr = rots.shift();for(let k=0; k<enumOrange.length; k++){let m = enumOrange[k][0],n = enumOrange[k][1];let next = grid[curr[0]+m] && grid[curr[0]+m][curr[1]+n];if(next===1){grid[curr[0]+m][curr[1]+n] = 2;rots.push([curr[0]+m, curr[1]+n]);freshNum--;} }};}return -1 }

    復盤:

    枚舉類型和for of的應用

    轉載于:https://www.cnblogs.com/zhangzs000/p/10465692.html

    總結

    以上是生活随笔為你收集整理的994. 腐烂的橘子的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。