题目如下:
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 int uniquePaths(int m, int n) { 2 int *A; 3 A=(int*)malloc(sizeof(int)*m*n); 4 int a,b; 5 for(a=m-1,b=0;b<n;b++){ 6 A[a*n+b]=1; 7 } 8 for(b=n-1,a=0;a<m;a++){ 9 A[a*n+b]=1; 10 } 11 for(a=m-2;a>=0;a--){ 12 for(b=n-2;b>=0;b--){ 13 A[a*n+b]=A[(a+1)*n+b]+A[a*n+b+1]; 14 } 15 } 16 return A[0]; 17 }
类似的题Minimum Path Sum也可以通过这个方法解决。
原文:http://www.cnblogs.com/asawanggaa/p/4403573.html