unique path ||
推荐作者详解:作者:wang_ni_ma
链接:https://leetcode-cn.com/problems/unique-paths-ii/solution/si-chong-shi-xian-xiang-xi-tu-jie-63-bu-0qyz7/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Isn't it funny how day by day nothing changes, but when you look back everything is different.
个人微改:
public class UniquePath_02 {
public static void main(String args[]) {
int[][] obstacleGrid = new int[][]{{0,0,0},{0,1,0},{0,0,0}};
System.out.println(path(obstacleGrid));
}
public static int path(int[][] obstacleGrid) {
//列!
int n = obstacleGrid.length;
//行!
int m = obstacleGrid[0].length;
int[][] dp = new int[n][m];
if(obstacleGrid[0][0]==1) {return 0;}
dp[0][0] = (obstacleGrid[0][0] == 1) ? 0 : 1;
//第一行有障碍物。
for(int i=1;i<m;i++) {
if(obstacleGrid[0][i]==1 || dp[0][i-1]==0) {
dp[0][i]=0;
}else {
dp[0][i]=1;
}
}
//第一列!
for(int i=1;i<n;i++) {
if(obstacleGrid[i][0] == 1 || dp[i - 1][0] == 0) {
dp[i][0]=0;
}else {
dp[i][0]=1;
}
}
for(int i=1;i<n;i++) {
for(int j = 1; j < m; ++j) {
if(obstacleGrid[i][j] == 1) {
dp[i][j] = 0;
}else {
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
}
return dp[n-1][m-1];
}
}

该博客详细解析了LeetCode中的《唯一路径II》问题,作者通过Java代码实现了一个动态规划解决方案。代码中,作者首先初始化二维数组dp,并处理边界条件,然后逐行和逐列填充dp数组,最后返回目标位置的值,即为路径数量。文章强调了如何处理障碍物并正确计算路径的思路。
1975

被折叠的 条评论
为什么被折叠?



