leetcode 62. 不同路径

102 阅读1分钟

62. 不同路径 - 力扣(LeetCode)

动态规划中如何初始化很重要!| LeetCode:62.不同路径_哔哩哔哩_bilibili

image.png

我们再拿下面这个图举例:

image.png

首先我们需要确定dp[i-1][j]和dp[i][j-1]的值。声明:这里的值不是大小,而是多少种路径 先看dp[i-1][j]: 因为只能向右或向下走,不能向上走,所以dp[i-1][j]=1

image.png 再看dp[i][j-1]: dp[i][j-1]它可以由dp[i][j-1-1]+dp[i-1][j-1]获得

所以它的值为2

image.png

dp[i][j]=dp[i-1][j]+dp[i][j-1]=1+2=3

image.png




class Solution {
public:
    int uniquePaths(int m, int n) {

     


         //dp表
             vector<vector<int>> dp(m,vector<int>(n,0)); //二位数组

        //初始化
        for(int i=0;i<m;i++)
        {
            for(int j=0;j<n;j++)
            {
                dp[0][j]=1;
                dp[i][0]=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];
    }
};