1 Star 0 Fork 0

Byte/algorithm

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
solution_7.java 1.19 KB
一键复制 编辑 原始数据 按行查看 历史
Gavery 提交于 2022-04-26 22:33 +08:00 . review
package dynamic;
/**题目:路径数量,含障碍物
* 题目给定一个m*n的二维数组,数组值有0和1,要求从左上角走到右下脚的路径和,
* 只能向右和向下走,并且数组值只有为0时候该路径才允许走
* @Author Gavin
* @date 2022.01.09 16:35
*/
public class solution_7 {
/**
* 解题思路:动态规划题
* 首先得到状态方程,我们可以得出如下的结论
* 第0行到第0列上面所有的值都是0的话那么这行上面的所有路径都是1,如果中间i为1的话,
* 那么从i到末尾的路径都是0
* 同理第i行到第0列
*/
//Time:O(m*n) Space:O(m*n)
public int solution(int[][] grid){
int m=grid.length,n=grid[0].length;
int[][] d=new int[m][n];
d[0][0]=grid[0][0]==1?0:1;
for (int i = 1; i <m ; i++) {
d[i][0]=grid[i][0]==1?0:d[i-1][0];
}
for (int j = 0; j < n; j++) {
d[0][j]=grid[0][j]==1?0:d[0][j-1];
}
for (int i = 1; i <m ; i++) {
for (int j = i; j < n; j++) {
d[i][j]=grid[i][j]==1?0:d[i-1][j]+d[i][j-1];
}
}
return d[m-1][n-1];
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Gavery/algorithm.git
git@gitee.com:Gavery/algorithm.git
Gavery
algorithm
algorithm
master

搜索帮助