LeetCode Day50 unique-paths

二维数组,第一行第一列都为一
动态规划dp[i][j]=dp[i-1][j]+dp[i][j-1];

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

节省空间,只用一维数组即可
下一行首先用上行数据,默认加了上一行,只需再加上左边格子的值即可

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

猜你喜欢

转载自blog.csdn.net/weixin_41394379/article/details/84886004