int _uniquePaths(int m, int n) { // printf("m:%d n:%d \n", m, n); if ( n == 0 || m == n ) return 1; return _uniquePaths(m-1, n-1) + _uniquePaths(m-1, n); }
int __uniquePaths(int m, int n) { m = m + n - 2; n--; return _uniquePaths(m,n); }
int uniquePathsWithObstacles(vector<vector<int> > &obstacleGrid) { return _uniquePaths(obstacleGrid.at(0).size(), obstacleGrid.size(), obstacleGrid); }