A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).
The robot can only move either down or right at any point in time. The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below).
How many possible unique paths are there?
Above is a 3 x 7 grid. How many possible unique paths are there?
Note: m and n will be at most 100.
这里注意,1,1 情况下结果是1!
class Solution {
public:
int dp[100 + 3][100 + 2];
int rows,cols;
int uniquePaths(int m, int n) {
if(m <= 0 || n <= 0)return 0;
rows = m;
cols = n;
memset(dp, 0, sizeof(dp));
return path(1, 1);
}
int path(int r, int c)
{
if(r == rows && c == cols)return 1;
if(dp[r][c])return dp[r][c];
if(r < rows)dp[r][c] += path(r + 1, c);
if(c < cols)dp[r][c] += path(r, c + 1);
return dp[r][c];
}
};