题目 :不同的路径 II
来源:互联网 发布:雷盾网络验证破解版 编辑:程序博客网 时间:2024/05/21 22:53
跟进“不同的路径”:
现在考虑网格中有障碍物,那样将会有多少条不同的路径?
网格中的障碍和空位置分别用1和0来表示。
您在真实的面试中是否遇到过这个题?Yes
样例
如下所示在3x3的网格中有一个障碍物:
[
[0,0,0],
[0,1,0],
[0,0,0]
]
一共有2条不同的路径从左上角到右下角。
注意
标签 Expandm和n均不超过100
AC代码:
public class Solution {
/**
* @param obstacleGrid: A list of lists of integers
* @return: An integer
*/
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
// write your code here
int re[][]= obstacleGrid;
re[0][0]= re[0][0]== 1 ? 0 : 1;
for(int i=1;i<re.length;i++){
re[i][0] = re[i][0]==1?0:re[i-1][0];
}
for(int j=1;j<re[0].length;j++){
re[0][j] = re[0][j]==1?0:re[0][j-1];
}
for(int i=1;i<re.length;i++)
{
for(int j=1;j<re[i].length;j++){
re[i][j] = re[i][j]==1?0:re[i-1][j]+re[i][j-1];
}
}
return re[re.length-1][re[0].length-1];
}
}
/**
* @param obstacleGrid: A list of lists of integers
* @return: An integer
*/
public int uniquePathsWithObstacles(int[][] obstacleGrid) {
// write your code here
int re[][]= obstacleGrid;
re[0][0]= re[0][0]== 1 ? 0 : 1;
for(int i=1;i<re.length;i++){
re[i][0] = re[i][0]==1?0:re[i-1][0];
}
for(int j=1;j<re[0].length;j++){
re[0][j] = re[0][j]==1?0:re[0][j-1];
}
for(int i=1;i<re.length;i++)
{
for(int j=1;j<re[i].length;j++){
re[i][j] = re[i][j]==1?0:re[i-1][j]+re[i][j-1];
}
}
return re[re.length-1][re[0].length-1];
}
}
0 0
- 题目 :不同的路径 II
- 不同的路径 II
- 不同的路径 II
- 不同的路径 II
- 不同的路径 II
- 不同的路径II
- 不同的路径II
- 不同的路径 II
- 题目 :不同的路径
- LintCode 不同的路径 II
- LintCode -- 不同的路径 II
- LintCode:不同的路径II
- 不同的路径 II -LintCode
- 不同的路径 II-LintCode
- LintCode 不同的路径II
- 题目:不同的二叉查找树 II
- LintCode UniquePathsII 不同的路径II
- lintcode-不同的路径II-115
- 空结构体和空类
- Host(存档备用)
- HDU 5072 Coprime (莫比乌斯反演+容斥+同色三角形)
- ExtJS学习之MessageBox
- Windows页目录自映射方案
- 题目 :不同的路径 II
- 不慎删除JDK文件目录之后既卸载不了又安装不上解决办法
- iOS学习(3)
- 安卓中eclipse不显示窗口与出现许多不认识的东西
- 十六进制颜色代码对照表
- Web请求中同步与异步的区别
- Android之如何更改获取焦点的先后顺序
- windows下使用ndk编译protobuf
- 题目 :两个字符串是变位词