[letecode java] Unique Paths
来源:互联网 发布:指南针软件诈骗 编辑:程序博客网 时间:2024/06/01 08:52
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?
很明显的动态规划问题,但第一次做的时候,理解成了递归问题,代码很短,但结果超时。
定义一个m*n二维矩阵matrix表示到达某一节点的路径数,从动态规划的角度,很容易发现matrix[i][j]=matrix[i-1][j]+matrix[i][j-1],即到达当前节点的路径数等于到达其左边节点的路径数加上上面节点的路径数。代码如下:
public int uniquePaths(int m, int n) {
int[][] ma=new int[m][n];
for(int i=0;i<m;i++)
for(int j=0;j<n;j++){
if(i==0||j==0){
ma[i][j]=1;
}
else{
ma[i][j]=ma[i-1][j]+ma[i][j-1];
}
}
return ma[m-1][n-1];
}
上述代码的空间复杂度为o(mn),这里还可以做优化,可以将空间复杂度缩减到o(n),定义一个 n维数组result,表示当前行到某一节点的路径数,初始全赋值为1,更新则从原图中的第二行开始。result[j]+=result[j-1],更新前,result[j]中存储上一行第j个节点的路径数,result[j-1]表示当前行第j-1个节点的路径数,更新后表示当前行第j个节点的路径数,也满足要求。
public int uniquePaths(int m, int n) {
int result[]=new int[n];
for(int i=0;i<n;i++){
result[i]=1;
}
for(int i=1;i<m;i++)
for(int j=1;j<n;j++){
result[j]+=result[j-1];
}
return result[n-1];
}
- [letecode java] Unique Paths
- [letecode java] Unique Binary Search Trees
- [Leetcode] Unique Paths (Java)
- Unique Paths Java
- Unique Paths II Java
- Unique Paths (Java)
- Unique Paths II (Java)
- [LeetCode][Java] Unique Paths
- (java) Unique Paths
- [Leetcode] Unique Paths II (Java)
- leetcode java Unique Paths II
- 【Leetcode】Unique Paths in JAVA
- [LeetCode][Java] Unique Paths II
- (Java)LeetCode-62. Unique Paths
- 【leetcode】62. Unique Paths【java】
- leetcode oj java Unique Paths
- [leetcode]62. Unique Paths(Java)
- [4]62. Unique Paths(Java)
- 基础技巧
- 北京赛车程序平台系统开发修复
- linux命令详解——vim
- JAVA中的vector,arraylist,linkedlist有什么共同点及区别?
- LR笔试题整理
- [letecode java] Unique Paths
- AIX .tgz的安装包及登录日志查看
- 搭建最简单的SpringMVC框架(使用maven)
- How to remove the action suffix extension in Struts 2
- JS动态添加的属性Form不能提交的问题
- Php move_uploaded_file无法成功
- 换个角度看微软:每年饮料费2300万
- qml学习------------GridLayout
- 结构体struct简介(上)