leetcode 62:Unique Paths

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.

DP[i][j]=DP[i-1][j]+DP[i][j-1]            i,j>0;

DP[i][j]=1                                          i=1或j=1

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

class Solution {
public:
int uniquePaths(int m, int n) {
if(m <=0 || n <= 0) return 0;
long long res = 1;
for(int i = n; i < m+n-1 ; i++){
res = res * i / (i- n + 1);
}
return (int)res;
}
};

03-11 2316

03-14 1303

03-26 1.1万

10-14 787

02-25 2260

12-08 4284

07-17 885

07-15 1039

06-12 980