力扣 62. 不同路径

48 阅读1分钟

🔗 leetcode.cn/problems/un…

题目

  • m * n 的格子,从左上到右下,一共有多少条路径
  • 每次只能往右一格或者往下一格

思路

  • dp,初始化 1,当前位置的不同路径数 = 从左来的路径数 + 从上来的路径数

代码

class Solution {
public:
    int uniquePaths(int m, int n) {
        int dp[110][110];
        for (int i = 0; i < n; i++) {
            dp[0][i] = 1;
        }
        for (int i = 1; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (j == 0) dp[i][j] = dp[i-1][j];
                else dp[i][j] = dp[i-1][j] + dp[i][j-1];
            }
        }
        
        return dp[m-1][n-1];
        
        
    }
};