LintCode刷题——不同的路径
2017-09-23 22:17
246 查看
描述:
有一个机器人的位于一个 m × n 个网格左上角。
机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。
问有多少条不同的路径?
样例:
给出 m =
返回
给出 m =
返回
解题:
public class Solution {
/**
* @param n, m: positive integer (1 <= n ,m <= 100)
* @return an integer
*/
public int uniquePaths(int m, int n) {
if(m==0||n==0) {
return 1;
}
int [][]dp=new int[m]
;
dp[0][0]=1;
for(int i=1;i<m;i++) {
dp[i][0]=1;
}
for(int j=1;j<n;j++) {
dp[0][j]=1;
}
for(int i=1;i<m;i++) {
for(int j=1;j<n;j++) {
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
return dp[m-1][n-1];
}
}
有一个机器人的位于一个 m × n 个网格左上角。
机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。
问有多少条不同的路径?
样例:
给出 m =
3和 n =
3,
返回
6.
给出 m =
4和 n =
5,
返回
35.
解题:
public class Solution {
/**
* @param n, m: positive integer (1 <= n ,m <= 100)
* @return an integer
*/
public int uniquePaths(int m, int n) {
if(m==0||n==0) {
return 1;
}
int [][]dp=new int[m]
;
dp[0][0]=1;
for(int i=1;i<m;i++) {
dp[i][0]=1;
}
for(int j=1;j<n;j++) {
dp[0][j]=1;
}
for(int i=1;i<m;i++) {
for(int j=1;j<n;j++) {
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
return dp[m-1][n-1];
}
}
相关文章推荐
- LintCode UniquePaths 不同的路径
- LintCode 114 不同的路径
- lintcode-不同的路径II-115
- LintCode -- 不同的路径
- LintCode UniquePathsII 不同的路径II
- lintcode-不同的路径-114
- LintCode: 114. 不同的路径 Java
- lintcode unique-paths-ii 不同的路径ii
- lintcode binary-tree-maximum-path-sum 二叉树中的最大路径和
- LintCode 二叉树的路径和
- lintcode,不同的二叉查找树
- LintCode:不同的二叉查找树
- LintCode-不同的子序列
- lintcode----二叉树的所有路径
- 不同的二叉查找树 II lintcode
- Leet Code 63 Unique Paths II - 不同路径 - Java
- LintCode:最小路径和
- LINTCODE——不同的二叉查找树
- Leet Code 62 Unique Paths - 不同路径 - Java
- lintcode- 不同的二叉树II