Unique Paths


解题思路

因为机器人只能走右或下,所以在m行n列的地图中:

  • dp[i][j]: i <= m, j <= n
    • 1 : (i = 1, j = 1)
    • dp[i-1][j] + dp[i][j-1] : {1 < i <= m, 1 < j <= n}

时间复杂度 空间复杂度
O(m*n) O(1)

Code

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

运行结果

Unique Paths