
【解题思路】
这道题说的不清楚,其实包含一个隐含条件:不可达的方格相当于障碍物,不能通过不可达的方格到达别的符合条件的方格。

如这个图中,上面那块符合条件的方格是可达的,但是无法到达下面符合条件的区域。
class Solution {
int num = 0;
int M, N, cnt, K;
int[][] dire = {
{-1,0}, {0,1}, {1,0}, {0,-1}};
public int movingCount(int m, int n, int k) {
boolean[][] flag = new boolean[m][n];
M = m; N = n; cnt = m*n; K = k;
num = 0;
DFS(0, 0, 0, flag);
return num;
}
public void DFS(int n, int row, int col, boolean[][] flag)
{
if(n == cnt) return;
int tmp = 0, r = row, c = col;
while(r > 0)
{
tmp += r%10;
r = r/10;

本文介绍了一种基于深度优先搜索(DFS)的算法来计算在一个m×n的矩阵中,从左上角出发,每一步只能向右或向下移动,并且每个位置上的数字之和不超过k的情况下,可以达到多少个有效的位置。该算法适用于路径规划和迷宫问题。
最低0.47元/天 解锁文章
341

被折叠的 条评论
为什么被折叠?



