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];
    }
}
相关推荐
wjcroom17 小时前
时空和电子1-平直相对论时空的构建
算法·重构·物理学
吃好睡好便好17 小时前
矩阵的求幂运算
人工智能·学习·线性代数·算法·matlab·矩阵
计算机安禾17 小时前
【算法分析与设计】第18篇:改进的最大流算法:Edmonds-Karp与Dinic
大数据·人工智能·算法
buhuizhiyuci18 小时前
【算法篇】初识双指针
算法
超梦dasgg18 小时前
归并排序 Java 实现(递归 + 非递归)
java·算法·排序算法
EIConferenceEmma18 小时前
【合作EI期刊 | IEEE出版 | 中国石油大学(华东)主办】第六届先进算法与神经网络国际学术会议(AANN 2026)
人工智能·神经网络·算法·机器学习
Brilliantwxx18 小时前
【算法题】 面试级别的二叉树题目OJ复习(下)
数据结构·c++·算法·leetcode·面试·哈希算法·推荐算法
菜菜的顾清寒18 小时前
力扣100(38)堆-数组中的第K个最大元素
算法·leetcode·排序算法
全球通史18 小时前
Jetson Nano 双摄像头芯片检测视觉系统:小尺度难定位问题解决,从零开始实现教程说明
嵌入式硬件·算法·ubuntu·性能优化
千寻girling18 小时前
机器学习 | 监督学习算法(了解) | 尚硅谷学习
开发语言·人工智能·后端·python·学习·算法·机器学习