class Solution:
def __init__(self):
self.cnt = 0
def movingCount(self, threshold, rows, cols):
if threshold < 0:
return 0
visited = [[0 for i in range(cols)] for j in range(rows)]
self.helper(visited, threshold, rows, cols, 0, 0)
return self.cnt
def helper(self, visited, threshold, rows, cols, m, n):
if visited[m][n]:
return
visited[m][n] = 1
self.cnt += 1
temp_x = [0, 0, 1, -1]
temp_y = [1, -1, 0, 0]
for i in range(4):
x = m + temp_x[I]
y = n + temp_y[I]
if x>=0 and y>=0 and x<rows and y<cols and self.isValid(threshold,x,y):
self.helper(visited, threshold, rows, cols, x, y)
def isValid(self, threshold, m, n):
res = self.countNum(m) + self.countNum(n)
return res <= threshold
def countNum(self, m):
res = 0
while m:
res += m % 10
m = m // 10
return res