劍指offer 66 機械人的運動範圍

2021-10-10 10:34:54 字數 1363 閱讀 8720

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

dfs邊界條件:

class

solution

:def

__init__

(self)

: self.count =

0 self.matrix =

none

defmovingcount

(self, threshold, rows, cols)

:# write code here

self.matrix =[[

0for i in

range

(cols)

]for j in

range

(rows)

] self.dfs(0,

0,threshold)

return self.count

defdfs(self,x,y,threshold)

:if x<

0or y<

0or x>

len(self.matrix)-1

or y>

len(self.matrix[0]

)-1or self.matrix[x]

[y]==1:

return

none

elif self.sumnum(x)

+self.sumnum(y)

> threshold :

self.matrix[x]

[y]=

1else

: self.matrix[x]

[y]=

1 self.count+=

1 self.dfs(x+

1,y,threshold)

self.dfs(x-

1,y,threshold)

self.dfs(x,y+

1,threshold)

self.dfs(x,y-

1,threshold)

defsumnum

(self,num)

: res =

0while num!=0:

res+=num%

10 num = num/

10return res

劍指offer 66 機械人的運動範圍

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

劍指Offer(66) 機械人的運動範圍

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

劍指offer 66 機械人的運動範圍

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