思路:
当看到路径的时候就总是想着使用DFS去解决问题,最终信心满满的超时;看完题解恍然大悟动态规划最经典,继续加油再接再厉。
困难:
可能是自己还是不能真正理解 不能够举一反三,希望能够再接再厉
结果:
dfs会超时:dfs为什么会超时,以为会重复的去计算相关的路径
使用动态规划:
public int uniquePaths(int m, int n) {
//DFS + 回溯 求得所有的路径 需要加 visited 不能走走过的路径 直到最后的路径值为
//每次只能向下或者向右移动一步
// boolean[][] visited = new boolean[m][n];
// dfs(m, n, 0, 0, visited);
// return count;
int[][] f = new int[m][n];
//边界为0
for (int i = 0; i < m; ++i) {
f[i][0] = 1;
}
for (int j = 0; j < n; ++j) {
f[0][j] = 1;
}
for (int i = 1; i < m; ++i) {
for (int j = 1; j < n; ++j) {
f[i][j] = f[i - 1][j] + f[i][j - 1];
}
}
return f[m - 1][n - 1];
}