update 0063.不同路径II.md Go版本

This commit is contained in:
chengleqi
2022-01-21 14:38:11 +08:00
parent 463f623cd5
commit 1264fa87ac

View File

@ -272,40 +272,27 @@ func uniquePathsWithObstacles(obstacleGrid [][]int) int {
for i, _ := range dp { for i, _ := range dp {
dp[i] = make([]int, n) dp[i] = make([]int, n)
} }
// 初始化 // 初始化, 如果是障碍物, 后面的就都是0, 不用循环了
for i:=0;i<m;i++ { for i := 0; i < m && obstacleGrid[i][0] == 0; i++ {
// 如果是障碍物, 后面的就都是0, 不用循环了
if obstacleGrid[i][0] == 1 {
break
}
dp[i][0] = 1 dp[i][0] = 1
} }
for i:=0;i<n;i++ { for i := 0; i < n && obstacleGrid[0][i] == 0; i++ {
if obstacleGrid[0][i] == 1 {
break
}
dp[0][i] = 1 dp[0][i] = 1
} }
// dp数组推导过程 // dp数组推导过程
for i := 1; i < m; i++ { for i := 1; i < m; i++ {
for j := 1; j < n; j++ { for j := 1; j < n; j++ {
// 如果obstacleGrid[i][j]这个点是障碍物, 那么我们的dp[i][j]保持为0 // 如果obstacleGrid[i][j]这个点是障碍物, 那么dp[i][j]保持为0
if obstacleGrid[i][j] != 1 { if obstacleGrid[i][j] != 1 {
// 否则我们需要计算当前点可以到达的路径数 // 否则我们需要计算当前点可以到达的路径数
dp[i][j] = dp[i-1][j] + dp[i][j-1] dp[i][j] = dp[i-1][j] + dp[i][j-1]
} }
} }
} }
// debug遍历dp
//for i,_ := range dp {
// for j,_ := range dp[i] {
// fmt.Printf("%.2v,",dp[i][j])
// }
// fmt.Println()
//}
return dp[m-1][n-1] return dp[m-1][n-1]
} }
``` ```
Javascript Javascript