Leetcode 62. Unique Paths

来源:互联网 发布:中国影响力人物数据库 编辑:程序博客网 时间:2024/05/16 10:59

题目

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.

思路

动态规划来做这题
path[i][j] = path[i - 1][j] + path[i][j - 1]

代码

package leetcodeArray;import java.util.ArrayList;import java.util.Arrays;import java.util.List;public class Leetcode62UniquePaths {    #动态规划来解    public int uniquePaths(int m, int n) {        Integer[][] path = new Integer[m][n];        for(int i = 0; i < m; i++){            path[i][0] = 1;        }        for(int i = 0; i < n;i++){            path[0][i] = 1;        }        for(int i = 1; i < m; ++i){            for(int j = 1; j < n; ++j){                path[i][j] = path[i - 1][j] + path[i][j - 1];            }        }        return path[m-1][n - 1];    }    #优化了空间复杂度    public int uniquePathsOn(int m, int n) {        if(m > n) return uniquePathsOn(n, m);        Integer[] path = new Integer[m];        Arrays.fill(path,1);        for(int i = 1; i < m; ++i){            for(int j = 1; j < n; ++j){                path[j] += path[j - 1];            }        }        return path[m-1];    }    public static void main(String []args){        Leetcode62UniquePaths test = new Leetcode62UniquePaths();        System.out.println(test.uniquePaths(10, 10));        System.out.println(test.uniquePathsOn(10, 10));    }}
原创粉丝点击