https://leetcode-cn.com/problems/ji-qi-ren-de-yun-dong-fan-wei-lcof/
# -*- coding:utf-8 -*-
class Solution:
def movingCount(self, m: int, n: int, k: int) -> int:
def judge(x, y):
str_x = str(x)
str_y = str(y)
sum = 0
for each in str_x:
sum += int(each)
for each in str_y:
sum += int(each)
if sum <= k:
return True
return False
def dfs(x, y, res):
for ii, jj in [(1, 0), (0, 1), (-1, 0), (0, -1)]:
if 0 <= x + ii < m and 0 <= y + jj < n and init_map[x + ii][y + jj] == 0 and judge(x + ii, y + jj):
init_map[x + ii][y + jj] = 1
res = dfs(x + ii, y + jj, res + 1)
return res
init_map = [[0 for _ in range(n)] for _ in range(m)]
init_map[0][0] = 1
res_output = dfs(0, 0, 1)
return res_output
if __name__ == '__main__':
m = 2
n = 3
k = 1
print(Solution().movingCount(m, n, k))
思路:深搜,四个方向搜索,只不过之前的深搜判断逻辑是能不能达到啊什么的,这次的逻辑是检查坐标各位和超不超过k。
0 条评论