2.使用的是bfs(廣度優先遍歷)+佇列(先進先出)完成的
題目:[
[2,1,1],
[1,1,0],
[0,1,1]
]2-腐爛,1-新鮮,0-空
每分鐘任何與腐爛的橘子相鄰的新鮮橘子都會腐爛,返回直到單元格中沒有新鮮橘子為止所必須經過的最小分鐘數。如果不可能,返回 -1,沒有新鮮橘子返回0
直接上**
class
solution
:def
orangesrotting
(self, grid: list[list[
int]])
->
int:
#如果沒有新鮮橘子
l =[y for i in grid for y in i]if1
notin l:
return
0 x =
len(grid)
#行 y =
len(grid[0]
)#列time =
0#四個方向
locs =[(
-1,0
),(1
,0),
(0,-
1),(
0,1)
]#上下左右
#模擬乙個佇列
q =#把所有腐爛的橘子放入佇列中
for i in
range
(x):
for j in
range
(y):
if grid[i]
[j]==2:
#從最右端加入
(i, j,0)
)#遍歷佇列裡所有腐爛的橘子,直到為空
while q:
#從左端彈出
i, j , time= q.pop(0)
for loc in locs:
loc_i, loc_j = i+loc[0]
, j+loc[1]
#判斷腐爛的橘子上下左右是否有新鮮橘子,有的話就會腐爛if0
<= loc_i < x and
0<= loc_j < y and grid[loc_i]
[loc_j]==1
: grid[loc_i]
[loc_j]=2
(loc_i, loc_j, time+1)
)#最後判斷還有沒有新鮮橘子
for g in grid:if1
in g:
return-1
return time
每日練習 Day014
b s 與 c s 的聯絡與區別。c s client server 結構,即大家熟知的客戶機和伺服器結構。它是軟體系統體系結構,通過它可以充分利用兩端硬體環境的優勢,將任務合理分配到 client 端和 server 端來實現,降低了系統的通訊開銷。b s browser server 結構即瀏覽...
每日練習 Day015
dom 操作怎樣新增 移除 移動 複製 建立和查詢節點?表名 food 欄位名字段描述 資料型別 外來鍵非空 唯一自增 id編號 int是是是 是name 食品公司 varchar 20 是company 生產廠商 varchar 30 是price 單位 圓 float produce time ...
每日python練習
python 計算列表元素之積 def multiplylist mylist result 1 for x in mylist result result x return result list1 1,2,3 list2 4,5,6 print multiplylist list1 print ...