62. 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?

62. Unique Paths_第1张图片

Above is a 3 x 7 grid. How many possible unique paths are there?
Note: m and n will be at most 100.

分析

用dp来做,算法复杂度O(m*n)。

  • 初始条件:最后一行和最后一个一列的路径肯定只有一条。
  • 推导方式:其他位置的路径数等于其右边的路径数目加上其下边的路径数目。
  • 输出数据:第一个位置的路径数。

实现

class Solution {
public:
    int uniquePaths(int m, int n) {
        int dp[m][n];
        for(int i=0; i=0; i--)
            for(int j=n-2; j>=0; j--)
                dp[i][j] = dp[i+1][j] + dp[i][j+1];
        return dp[0][0];
    }
};

思考

最喜欢这种最简单的dp了。

你可能感兴趣的:(62. Unique Paths)