2025年--Lc184--62.不同路径(动态规划)--Java版
1.题目描述
2.思路
(1)m是行数,n是列数,dp代表到当前位置的路径数
(2)初始化第一行和第一列。把第一行和第一列初始化为1。表示到当前格子路径数就+1. 即dp[0][j]=1,dp[i][0]=1
(3)递推公式:dp[i][j]=dp[i-1][j]+dp[i][j-1]
(4)dp数组从左到右遍历和从上到下遍历
(5)终止条件:到达最后一个格子就算是遍历成功了。return dp[m-1][n-1]
3.代码实现
class Solution {public int uniquePaths(int m, int n) {//m是行数,n是列数//定义1个dp数组int[][] dp=new int[m][n];//初始化第一列和第一行for(int i=0;i<m;i++){dp[i][0]=1;//第一列的所有值都是1}for(int j=0;j<n;j++){dp[0][j]=1;//第一行所有值都是1}//递推公式//因为第一行和第一列已经初始化完成,所以直接从i,j=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];}
}