leetcode-Unique Paths-62

输入m,n代表一个m*n的矩阵,求从左上角走到右下角,每次只能往右或者往下走,能有多少种走法

找规律,发现就是从右下角开始填数字,每个格子的值是a[i][j]=a[i+1][j]+a[i][j+1],最后输出a[0][0],具体的画图理解

 1 class Solution {
 2 public:
 3     int uniquePaths(int m, int n) {
 4         if(m==0&&n==0) return 0;
 5         int a[m+1][n+1];
 6         memset(a,0,sizeof(a));
 7         for(int i=0;i<m;i++) a[i][n-1]=1;
 8         for(int i=0;i<n;i++) a[m-1][i]=1;
 9         for(int i=m-2;i>=0;i--){
10             for(int j=n-2;j>=0;j--){
11                 a[i][j]=a[i+1][j]+a[i][j+1];
12             }
13         }
14         return a[0][0];
15     }
16 };

 

posted @ 2016-08-30 21:07  0_summer  阅读(130)  评论(0编辑  收藏  举报