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.深搜 /* class Solution { int dfs(int m,int n,int r,int c,int end_r,int end_c) { if(r<0 || r>=m || c<0 || c>=n) { return 0; } if(end_r == r && end_c==c){ return 1; } return dfs(m,n,r+1,c,end_r,end_c)+dfs(m,n,r,c+1,end_r,end_c); } public: int uniquePaths(int m, int n) { return dfs(m,n,0,0,m-1,n-1); } }; */ //2.动态 class Solution { public: int uniquePaths(int m, int n) { vector<int> help(n,1); for(int i=1;i<m;i++){ for(int j=0;j<n;j++){ if(j==0){ help[j] = 1; }else{ help[j] = help[j]+help[j-1]; } } } return m>0&&n>0 ? help[n-1]:0; } };
时间: 2024-10-11 23:37:22