62. Unique Paths

xiaoxiao2021-02-27  417

class Solution { public: int uniquePaths(int m, int n) { //自底向上,从最后一个节点的方案数向回计算 int a[1000][1000]; if(n ==1 || m==1){ return 1; } a[m][n] = 1; for(int i = m ; i >=1 ;i-- ){ for(int j = n ; j >=1;j--){ if( i==m || j==n){ //一旦一条边已经达到边缘,方案数目就没有变化了 a[i][j] =1; } else{ a[i][j] = a[i][j+1] +a[i+1][j]; } } } return a[1][1]; } }; class Solution { public: //第二种从正向开始 int uniquePaths(int m, int n) { int a[m][n]; for(int i = 0; i < m; i++){ a[i][0] = 1; } for(int i = 0; i < n; i++){ a[0][i] = 1; } for(int i=1;i<m;i++){ for(int j=1;j<n;j++){ a[i][j] = a[i-1][j]+a[i][j-1]; } } return a[m-1][n-1]; } };
转载请注明原文地址: https://www.6miu.com/read-4654.html

最新回复(0)