1. 程式人生 > >LeetCode Day50 unique-paths

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]; } };