unique paths

class Solution {
public:
    int rows;
    int cols;
    int path(int m,int n, vector<vector<int>> &v)
    {
        if( m==rows-1 && n == cols-1 ) return 1;
        if( v[m][n] != INT_MAX ) return v[m][n];
        int way1 = 0,way2 = 0;
        if( m < rows - 1 )
            way1 = path( m+1,n,v );
        if( n < cols - 1 )
            way2 = path(m,n+1,v);
        v[m][n] = way1+ way2;
        return v[m][n];
        
    }
    int uniquePaths(int m, int n) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        if( m==0 && n == 0 ) return 0;
        rows = m;
        cols = n;
        vector<vector<int>> v( m, vector<int>(n,INT_MAX));
        return path(0,0,v);
        
    }
};

 加入障碍

 1 class Solution {
 2 public:
 3     int rows;
 4     int cols;
 5     int path(int m,int n, vector<vector<int>> &v, 
 6              vector<vector<int>> &obstacleGrid)
 7     {
 8         if( obstacleGrid[m][n] == 1 ) return 0;
 9         if( m==rows-1 && n == cols-1 ) return 1;
10         if( v[m][n] != INT_MAX ) return v[m][n];
11         int way1 = 0,way2 = 0;
12         if( m < rows - 1 && obstacleGrid[m+1][n] == 0 )
13             way1 = path( m+1,n,v,obstacleGrid );
14         if( n < cols - 1 && obstacleGrid[m][n+1] == 0)
15             way2 = path(m,n+1,v,obstacleGrid);
16             
17         v[m][n] = way1+ way2;
18         return v[m][n];
19         
20     }
21     int uniquePathsWithObstacles(vector<vector<int> > &obstacleGrid) {
22         // Start typing your C/C++ solution below
23         // DO NOT write int main() function
24         
25         rows = obstacleGrid.size();
26         if( rows == 0) return 0;
27         cols = obstacleGrid[0].size();
28         if( cols == 0) return 0;
29        
30         if( obstacleGrid[rows-1][cols-1] == 1 ) return 0;
31         
32         vector<vector<int>> v( rows, vector<int>(cols,INT_MAX));
33         
34         return path(0,0,v,obstacleGrid);
35         
36     }
37 };
View Code

 

posted on 2013-07-04 14:43  jumping_grass  阅读(116)  评论(0)    收藏  举报

导航