题解 | #机器人的运动范围#
机器人的运动范围
http://www.nowcoder.com/practice/6e5207314b5241fb83f2329e89fdecc8
- 考虑DFS遍历矩阵
- 考虑遍历终止条件:越界,已被访问过,不满足位数和要求,返回0
- 2中均为真后,考虑DFS返回的是:(向下+向上+当前)这三个的数量之和
# 1. 位数和函数(暴力) def sum(i, j): ans = 0 while i>0: ans += (i%10) i //= 10 while j>0: ans += (j%10) j //= 10 return ans # 2. 深度遍历dfs def dfs(i, j, vis): if i>=rows or j>=cols or (i,j) in visited or sum(i,j)>threshold: return 0 visited.add((i,j)) return 1 + dfs(i+1, j, visited) + dfs(i, j+1, visited) visited = set() return dfs(0,0,visited)