Ejemplo n.º 1
0
 int uniquePaths2(int m,int n){//O(m*n) 空间复杂度  O(m*n)
     if(1==m) return 1;
     if(1==n) return 1;
     map<pair<int,int>,int>::iterator iter = t_mapNote.find(make_pair(m,n));
     if(iter!=t_mapNote.end()){
         return iter->second;
     }
     else{
         int value = uniquePaths2(m-1,n)+uniquePaths2(m,n-1);
         t_mapNote[make_pair(m,n)] = value;
         return value;
     }
 }
Ejemplo n.º 2
0
int main(int argc, const char * argv[])
{
    cout<< uniquePaths(1, 1) <<endl; // ==> 1
    cout<< uniquePaths(2, 2) <<endl; // ==> 2
    cout<< uniquePaths(3, 3) <<endl; // ==> 6
    
    cout<< uniquePaths(4, 4) <<endl; // ==> 20
    cout<< uniquePaths(5, 5) <<endl; // ==> 70
    cout<< uniquePaths(6, 6) <<endl; // ==> 252
    cout<< uniquePaths(7, 7) <<endl; // ==> 924
    cout<< uniquePaths(8, 8) <<endl; // ==> 3432
    cout<< uniquePaths( 51 , 9) <<endl; // ==> 1916797311?  //Time Limit Exceeded
    
    cout<<A(2,2)<<endl;
    
    cout<< uniquePaths2(3, 3) <<endl; // ==> 20
    cout<< uniquePaths2(4, 4) <<endl; // ==> 20
    cout<< uniquePaths2(5, 5) <<endl; // ==> 70
    cout<< uniquePaths2(6, 6) <<endl; // ==> 252
    cout<< uniquePaths2(7, 7) <<endl; // ==> 924
    cout<< uniquePaths2(8, 8) <<endl; // ==> 3432
    cout<<A(4,4)<<endl;
    cout<<A(5,5)<<endl;
    cout<<A(7,7)<<endl;
    cout<<A(8,8)<<endl;
    
    cout << "--------------" << endl;
    
    cout<< uniquePaths3(3, 3) <<endl; // ==> 20
    cout<< uniquePaths3(4, 4) <<endl; // ==> 20
    cout<< uniquePaths3(5, 5) <<endl; // ==> 70
    cout<< uniquePaths3(6, 6) <<endl; // ==> 252
    cout<< uniquePaths3(7, 7) <<endl; // ==> 924
    cout<< uniquePaths3(8, 8) <<endl; // ==> 3432
    cout<< uniquePaths3(51, 9) <<endl; // ==> 3432
    
//    cout<< uniquePaths(2, 4) <<endl; // ==> 2
//    cout<< uniquePaths(3, 4) <<endl; // ==> 6
    
    return 0;
}