int uniquePaths(int m, int n){
    int *row=malloc(n*sizeof(int)); // the bottom row
    int *newRow=malloc(n*sizeof(int));;
    //return row[0];

    for(int i=0; i<n; i++){
        row[i]=1;
    }
    //return row[0];

    
    for(int i=0; i<m-1; i++){
        newRow[n-1]=1;
        for(int j=n-2; j>=0; j--){
            newRow[j]=newRow[j+1]+row[j];
        }
        row=newRow;
    }

    return row[0];
}

DP動態規劃