LeetCode-62-不同路径-动态规划

题目描述:

一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 "Start" )。

机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 "Finish" )。

问总共有多少条不同的路径?

题目链接: LeetCode-62-不同路径

解题思路:详见注释~
代码实现:

java 复制代码
class Solution {
    public int uniquePaths(int m, int n) {
        // 1. dp[i][j]含义:走到(i,j)位置有dp[i][j]条路径
        // 2. 递推公式:dp[i][j]依赖与 dp[i-1][j] 和 dp[i][j-1]的路径个数
        //            dp[i][j] = dp[i-1][j] + dp[i][j-1]
        // 3. 如何初始化:第一行和第一列均初始化为 1,不管怎么走都只有一种方法,要么一直向右,要么一直向下
        //          dp[0][j]=1
        //          dp[i][0]=1
        // 4. 遍历顺序:从左上到右下

        // 定义一个二维的dp数组
        int[][] dp = new int[m][n];
        for (int i = 0; i < m; i++) {
            dp[i][0]=1;
        }
        for (int i = 0; i < n; i++) {
            dp[0][i]=1;
        }

        for (int i = 1; i < m; i++) {
            for (int j = 1; j < n; j++) {
                dp[i][j]=dp[i-1][j] + dp[i][j-1];
            }
        }
        return dp[m-1][n-1];
    }
}
相关推荐
福楠几秒前
C++ | 继承
c语言·开发语言·数据结构·c++·算法
华如锦2 分钟前
MongoDB作为小型 AI智能化系统的数据库
java·前端·人工智能·算法
机器学习之心HML3 分钟前
GSABO(通常指混合了模拟退火SA和天牛须搜索BAS的改进算法)与BP神经网络结合,用于爆破参数优选
人工智能·神经网络·算法·爆破参数优选
轻微的风格艾丝凡4 分钟前
数织求解脚本技术文档
算法·matlab
你怎么知道我是队长5 分钟前
C语言---强制类型转换
c语言·开发语言·算法
_OP_CHEN5 分钟前
【算法基础篇】(四十六)同余方程终极攻略:从基础转化到实战破解
c++·算法·蓝桥杯·数论·同余方程·扩展欧几里得算法·acm/icpc
程序员泡椒2 小时前
二分查找Go版本实现
数据结构·c++·算法·leetcode·go·二分
小雨下雨的雨2 小时前
Flutter鸿蒙共赢——墨染算法:柏林噪声与鸿蒙生态中的数字水墨意境
算法·flutter·华为·交互·harmonyos·鸿蒙
NAGNIP8 小时前
万字长文!回归模型最全讲解!
算法·面试
知乎的哥廷根数学学派8 小时前
面向可信机械故障诊断的自适应置信度惩罚深度校准算法(Pytorch)
人工智能·pytorch·python·深度学习·算法·机器学习·矩阵