【Hot100】LeetCode—62. 不同路径

目录

  • [1- 思路](#1- 思路)
  • [2- 实现](#2- 实现)
    • [⭐++62. 不同路径++------题解思路](#⭐62. 不同路径——题解思路)
  • [3- ACM 实现](#3- ACM 实现)


1- 思路

题目识别

  • 识别1 :给一个二维矩阵,每次只能向下或者向右移动一步
  • 识别2:求解到达最右下角的路径数。

动规五部曲

  • 1- 定义 dp 数组,确定含义
    • dp[i][j] 代表到达单元格 [i][j] 的路径数
  • 2- 递推公式
    • 因为只能向下或者向右移动,因此当前位置的方式由两个方向推导而来
    • dp[i][j] = dp[i-1][j] + dp[i][j-1]
  • 3- 初始化
    • 第一行,第一列的方式都是 1
  • 4- 遍历顺序,二维遍历 分别都从 1 开始

2- 实现

⭐++62. 不同路径++------题解思路

java 复制代码
class Solution {
    public int uniquePaths(int m, int n) {
        // 1. 定义 dp
        int[][] dp = new int[m][n];

        // 2. 递推
        // dp[i][j] = dp[i-1][j] + dp[i][j-1]

        // 3. 初始化
        for(int i = 0 ; i < m ; i++){
            dp[i][0] = 1;
        }
        for(int i = 0 ; i < n;i++){
            dp[0][i] = 1;
        }

        // 4.遍历顺序
        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];
    }
}

3- ACM 实现

java 复制代码
public class uniquePaths {

    public static int uniquePaths(int m, int n) {
        // 1. 定义 dp
        int[][] dp = new int[m][n];

        // 2. 递推
        // dp[i][j] = dp[i-1][j] + dp[i][j-1]

        // 3. 初始化
        for(int i = 0 ; i < m ; i++){
            dp[i][0] = 1;
        }
        for(int i = 0 ; i < n;i++){
            dp[0][i] = 1;
        }

        // 4.遍历顺序
        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];
    }


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        int n = sc.nextInt();
        System.out.println("结果是"+uniquePaths(m,n));
    }
}
相关推荐
CoderYanger19 分钟前
动态规划算法-简单多状态dp问题:15.买卖股票的最佳时机含冷冻期
开发语言·算法·leetcode·动态规划·1024程序员节
Xの哲學23 分钟前
Linux RTC深度剖析:从硬件原理到驱动实践
linux·服务器·算法·架构·边缘计算
狐5729 分钟前
2025-12-04-牛客刷题笔记-25_12-4-质数统计
笔记·算法
小O的算法实验室30 分钟前
2024年IEEE IOTJ SCI2区TOP,基于混合算法的水下物联网多AUV未知环境全覆盖搜索方法,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
洲星河ZXH1 小时前
Java,比较器
java·开发语言·算法
尋有緣1 小时前
力扣1069-产品销售分析II
leetcode·oracle·数据库开发
CoderYanger1 小时前
递归、搜索与回溯-FloodFill:33.太平洋大西洋水流问题
java·算法·leetcode·1024程序员节
CodeByV1 小时前
【算法题】双指针(二)
数据结构·算法
点云SLAM2 小时前
Boost库中Math 模块的根搜索 / 根求解和示例
数学·算法·数值优化·根搜索 / 根求解和示例·函数根求解·boost模块