現(xiàn)有一個m*n的迷宮矩陣 maze(如圖 a),矩陣中有空格子(用1表示,可通行)和墻(用0表示,不可通行);在迷宮中通行的每一步移動操作,你可以往上,下,左或者右方向移動一個格子(不能進入墻所在的格子)。
你的目標是找到離entry(入口)最近的出口,并規(guī)劃入口到出口的行走路徑。(出口的含義是 maze邊界上的空格子。entry格子不算出口)。如果不存在這樣的路徑,請你返回-1;如果有,則展示entry到出口的行走路徑。
程序在正常執(zhí)行后,運行結(jié)果如圖b所示:
●尋找最近出口位置的思路與算法:
預設(shè):0墻 1空格子 2已探索
在廣度優(yōu)先搜索的過程中,我們在隊列中保存[cx,cy,d]三元素列表,其中(cx,cy)為當前的行列坐標,d為當前坐標相對入口的距離(即需要移動的步數(shù))。
當我們遍歷至(cx,cy)時,我們枚舉它上下左右的相鄰坐標(nx,ny)。此時可能有三種情況:
①(nx,ny)不屬于迷宮坐標或為墻,此時無需進行任何操作;
②(nx,ny)為迷宮的出口(在迷宮邊界且不為墻),此時應返回 nx,ny,d+1,即該出口的坐標以及相對入口的距離作為答案。
③(nx,ny)為空格子且不為出口,此時應將新坐標設(shè)置為已探索,并將其對應的三元素列表[nx,ny,d+1]加入隊列。
最終,如果不存在到達出口的路徑,我們返回-1作為答案。
1、若迷宮數(shù)據(jù)為maze=[[0,0,0,0,0],[1,1,1,1,0],[0,1,0,1,1],[0,1,1,1,0],[0,0,0,0,0]],則最少移動步數(shù)為 55。
2、請將以下的程序代碼,補充完整。
【考點】Python語言編程環(huán)境.
【答案】5
【解答】
【點評】
聲明:本試題解析著作權(quán)屬菁優(yōu)網(wǎng)所有,未經(jīng)書面同意,不得復制發(fā)布。
發(fā)布:2024/4/20 14:35:0組卷:1引用:1難度:0.4
相似題
-
1.有如下Python程序段:
字符串s為“ab018/20c2/d101/e“時,執(zhí)行該程序段后,sum的值為( ?。?/h2>發(fā)布:2024/12/12 13:30:1組卷:2引用:1難度:0.5 -
2.由圖像如圖a所示,用以下算法記錄圖像的像素點分布。先將像素的顏色值進行調(diào)整,使之成為一幅黑白圖像(如圖b所示),再將黑白圖像中像素點(0表示黑色,1表示白色)分布以列表形式存儲,如[2310,321,1230……]表示先有231個連續(xù)的黑色像素,再接著是32個連續(xù)的白色像素,再接著是123個連續(xù)的黑色像素……,列表中部分數(shù)據(jù)如圖c所示。
實現(xiàn)上述功能的Python代碼如下:
(1)由程序代碼可知,對圖像的記錄方式采用
(2)若得到圖d顏色加深的圖像,則劃波浪線處代碼應修改為
A.img[i,j]>210
B.img[i,j]>140
C.img[i,j]<140
D.img[i,j]<210
(3)在橫線處填上合適的代碼。
(4)程序加框處代碼有錯,請改正。發(fā)布:2024/12/11 21:0:1組卷:3引用:1難度:0.4 -
3.統(tǒng)計高一學生選課情況。高一學生要從物理、化學、生物、政治、歷史、地理、技術(shù)這七門科目中選擇3門作為選考科目,“1”表示已選擇科目,數(shù)據(jù)存儲在文件“xk.jye.ai”中。
(1)根據(jù)選課情況完成填充組合列(L列)。
(2)統(tǒng)計組合數(shù)量,并將選課組合人數(shù)最多的5個組合以柱形圖的方式呈現(xiàn)(如圖所示)。發(fā)布:2024/12/15 10:0:2組卷:4引用:1難度:0.4
把好題分享給你的好友吧~~