62. Unique Paths


做题历程:

  1. 本题应该做了不止3次了,本次大概耗时9分钟,独立解出。

本题还是比较简单,就是单纯的dynamic programming,把所有的格子扫描一遍,每个格子的可能性都会遵守: dp[i][j] = dp[i-1][j] + dp[i][j-1],很容易得到最终的结果。 代码如下:

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

results matching ""

    No results matching ""