我用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