我用python按照楼主法1是对的。。Java不知道怎么回事,楼主找到问题了求告知谢谢~
# -*- coding:utf-8 -*-
class Solution:
def movingCount(self, threshold, rows, cols):
self.count = 0
visited = [[True] * cols for _ in range(rows)]
self.dfs(threshold, rows, cols, 0, 0, visited)
return self.count
def dfs(self, threshold, rows, cols, i, j, visited):
if (0 <=i < rows and 0 <= j < cols and visited[i][j] and
self.computeSum(i) + self.computeSum(j) <= threshold):
visited[i][j] = False
self.count += 1
self.dfs(threshold, rows, cols, i-1, j, visited)
self.dfs(threshold, rows, cols, i+1, j, visited)
self.dfs(threshold, rows, cols, i, j-1, visited)
self.dfs(threshold, rows, cols, i, j+1, visited)
def computeSum(self, num):
res = 0
while num:
res += num % 10
num //= 10
return res