【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));
    }
}
相关推荐
艾莉丝努力练剑9 分钟前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
偷吃的耗子40 分钟前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn
dazzle2 小时前
机器学习算法原理与实践-入门(三):使用数学方法实现KNN
人工智能·算法·机器学习
那个村的李富贵2 小时前
智能炼金术:CANN加速的新材料AI设计系统
人工智能·算法·aigc·cann
张张努力变强2 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
万岳科技系统开发2 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
张登杰踩2 小时前
MCR ALS 多元曲线分辨算法详解
算法
YuTaoShao2 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法一)排序+滑动窗口
算法·leetcode·排序算法
波波0072 小时前
每日一题:.NET 的 GC是如何分代工作的?
算法·.net·gc
HY小宝F2 小时前
职场沟通的深层智慧:从对抗到协作的自我修炼
职场和发展