[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?

Note: m and n will be at most 100.

https://oj.leetcode.com/problems/unique-paths/

思路1:DFS,果断超时。

思路2:DP:step[i][j] = step[i - 1][j] + step[i][j - 1];

public class Solution {
    public int uniquePaths(int m, int n) {
        int[][] step = new int[m][n];

        int i, j;
        for (i = 0; i < m; i++)
            step[i][0] = 1;
        for (i = 0; i < n; i++)
            step[0][i] = 1;

        for (i = 1; i < m; i++)
            for (j = 1; j < n; j++) {
                if (step[i][j] == 0) {
                    step[i][j] = step[i - 1][j] + step[i][j - 1];
                }

            }

        return step[m - 1][n - 1];
    }

    public static void main(String[] args) {
        System.out.println(new Solution().uniquePaths(20,20));
    }
}
View Code
原文地址:https://www.cnblogs.com/jdflyfly/p/3811064.html