62. Unique Paths 计算从二维数组(0,0)->(m-1,n-1)路径数量

    xiaoxiao2023-10-29  176

    计算从二维数组 (0,0)->(m-1,n-1) 路径数量

    思考:最初考虑使用dfs解决,这题不适合使用dfs, 而且会超时。正确解法使用动态规划解决。看到下面的递推公式也就明白了。

    方法1:使用二维的数组存放当前的路径数量。

        int uniquePaths(int m, int n) {         vector<vector<int>> paths(m, vector<int>(n, 1));         for (int i = 1; i < m; ++i) {             for (int j = 1; j < n; ++j) {                 paths[i][j] = paths[i - 1][j] + paths[i][j - 1];             }         }         return paths[m - 1][n - 1];     }

    方法2:是对方法1的优化,改为一维数组存放当前的路径数量。

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

     

    最新回复(0)