考虑将单元格的“矩阵图”安排为m×n矩阵。 映射中的每个单元格由
“位置”。 具体来说,地图左上角单元格的位置为(0,0),位置为
map的右下角单元格为(m−1,n−1)。map中的每个单元格都有两个值0和1中的一个。
值为0的单元格表示它是一个空单元格,机器人可以在其中移动。 具有值的单元格
1的意思是它是一堵机器人无法进入的墙。 一个机器人是通过地图开始导航
在位置(0,0)处,直到到达位置(m−1,n−1)。机器人的移动受两条规则限制:(1)
机器人只能在地图范围内移动。 (2)机器人可上下左右各移动一步
该去邻近的细胞了。 同样,我们单元格(0,0)和(m−1,n−1)是空的。 编写python程序来解决
以下问题
(a)[40%]编写一个程序,给定一个矩阵映射,返回机器人最少的步数
需要从单元格(0,0)旅行到单元格(m−1,n−1)。如果有,程序应该返回“−1”
没有有效的路由。 下面是一些例子:
(b)[30%]假设机器人有能力消除一面墙(即将一个细胞从“1”变为
“0”),编写一个程序,返回机器人从细胞(0,0)到细胞(0,0)的最小步数
cell (m−1,n−1)。
(c)[30%]现在,假设机器人能够消除k面墙,其中k≥1。 重复第(b)部分。一些例子:
用广度优先搜索算法来做
求具体代码