13 機械人的運動範圍 python

2021-10-04 23:45:34 字數 892 閱讀 9777

題目:地上有乙個m行n列d方格。乙個機械人從座標(0,0)的格仔開始移動,它每次可以向左、右、上、下移動一格,但不能進入行座標和列座標的數字之和大於k的格仔。

def robot_move(rows,cols,k):

if rows<0 or cols<0 or k<0:

return 0

visited = [[0 for i in range(cols)] for j in range(rows)]

return move(rows,cols,0,0,visited,k)

def move(rows,cols,row,col,visited,k):

cnt=0

if check(rows,cols,row,col,k,visited):

visited[row][col]=1

cnt = 1+move(rows,cols,row-1,col,visited,k)+move(rows,cols,row+1,col,visited,k)+\

+move(rows,cols,row,col-1,visited,k)+move(rows,cols,row,col+1,visited,k)

return cnt

def check(rows,cols,row,col,k,visited):

# print('check:', row, col,get_nums_sum(row),get_nums_sum(col),visited[row][col])

if row >=0 and col>=0 and col注:

visited:儲存該位置是否已經走過

check():驗證該格仔是否可以走

get_nums_sum():計算該格仔座標和

move():如果格仔可以走,往四個方向遞迴查詢

13 機械人運動範圍

地上有乙個m行和n列的方格。乙個機械人從座標0,0的格仔開始移動,每一次只能向左,右,上,下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於k的格仔。例如,當k為18時,機械人能夠進入方格 35,37 因為3 5 3 7 18。但是,它不能進入方格 35,38 因為3 5 3 8 19。請...

13 機械人的運動範圍

有乙個m行n列的方格,乙個機械人從座標 0 0 的格仔開始移動,它每次可以向上下左右移動一格,但不能進入座標位數和大於threshold的格仔,求機械人一共能到達多少個格仔 機械人從 0,0 開始移動,當要移動到 i,j 時,先判斷i,j是否滿足條件,如果滿足,就進入,遞迴執行。如果不滿足,嘗試其他...

13機械人的運動範圍

地上有乙個 m 行和 n 列的方格。乙個機械人從座標 0,0 的格仔開始移動,每一次只能向左右上下四個方向移動一格,但是不能進入行座標和列座標的數字之和大於 k 的格仔。例如,當 k 為 18 時,機械人能夠進入方格 35,37 因為 3 5 3 7 18。但是,它不能進入方格 35,38 因為 3...