[Leetcode]Unique Paths

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?

典型动规,注意边界条件就可以了。

 1 class Solution {
 2 public:
 3 int uniquePaths(int m, int n) {
 4     int* path = new int[m*n];
 5     for (int i = 0; i != m; i++){
 6         for (int j = 0; j != n; j++){
 7             if (i == 0){
 8                 if (j == 0)
 9                     path[i*n + j] = 1;
10                 else
11                     path[i*n + j] = path[i*n + j - 1];
12             }
13             else{
14                 if (j == 0)
15                     path[i*n + j] = path[(i - 1)*n + j];
16                 else
17                     path[i*n + j] = path[i*n + j - 1] + path[(i - 1)*n + j];
18             }
19         }
20     }
21     return path[m*n - 1];
22 }
23 };

 

posted @ 2015-03-15 22:44  desperadox  阅读(213)  评论(0编辑  收藏  举报