Leetcode 62. Unique Paths

来源:互联网 发布:淘宝后台操作流程视频 编辑:程序博客网 时间:2024/06/05 22:55
/** * for any point [i, j] in the matrix, # of paths is the sum of dp[i-1, j] and dp[i, j-1] * therefore, we only need to know the values above and on the left hand side of that point, * we use an array to store paths above point [i, j] and a integer to store path on the left  */public class Solution {    public int uniquePaths(int m, int n) {        int pre;         int[] dp = new int[n];        for (int i=0; i<m; i++) {            pre = 1;            for (int j=1; j<n; j++) {                dp[j] += pre;                pre = dp[j];            }        }        return n == 1 ? 1 : dp[n-1];    }}

/** * acctually, we don't need to use another auxiliary var to store # of path on the left * because dp[j-1] equals to pre */public class Solution {    public int uniquePaths(int m, int n) {        int[] dp = new int[n];        dp[0] = 1;        for (int i=0; i<m; i++)             for (int j=1; j<n; j++)                dp[j] += dp[j-1];        return dp[n-1];    }}

Time O(m*n) Space O(n)

0 0
原创粉丝点击