We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。
现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?
网格中的障碍物和空位置分别用 1 和 0 来表示。
示例 1:
输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]] 输出:2 解释: 3x3 网格的正中间有一个障碍物。 从左上角到右下角一共有 2 条不同的路径: 1. 向右 -> 向右 -> 向下 -> 向下 2. 向下 -> 向下 -> 向右 -> 向右
示例 2:
输入:obstacleGrid = [[0,1],[0,0]] 输出:1
提示:
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/unique-paths-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
懒得处理, 干脆把1当成障碍物, 把负数当成值去计算, 最后的结果取一下绝对值即可
1
负数
const uniquePathsWithObstacles = grid => { const m = grid.length, n = grid[0].length if (grid[0][0] === 1) return 0 else grid[0][0] = -1 const dfs = (x, y) => { if (x < 0 || y < 0) return 0 if (grid[x][y] === 1) return 0 if (grid[x][y] === 0) { grid[x][y] = dfs(x - 1, y) + dfs(x, y - 1) } return grid[x][y] } return Math.abs(dfs(m - 1, n - 1)) }
开头先处理一下第一行数据, 然后把所有障碍物变成0, 因为dp是正向的向前推进数据, 所以不需要像记忆化搜索那样利用负数去计算
const uniquePathsWithObstacles = grid => { const m = grid.length, n = grid[0].length for (let i = 0, k = 0; i < n; i++) { if (grid[0][i] === 1) k = 1 grid[0][i] = k === 1 ? 0 : 1 } for (let i = 1; i < m; i++) { for (let j = 0; j < n; j++) { if (grid[i][j] === 1) { grid[i][j] = 0 } else { grid[i][j] = grid[i - 1][j] + ~~grid[i][j - 1] } } } return grid[m - 1][n - 1] }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。
现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?
网格中的障碍物和空位置分别用 1 和 0 来表示。
示例 1:
示例 2:
提示:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/unique-paths-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
懒得处理, 干脆把
1
当成障碍物, 把负数
当成值去计算, 最后的结果取一下绝对值即可开头先处理一下第一行数据, 然后把所有障碍物变成0, 因为dp是正向的向前推进数据, 所以不需要像记忆化搜索那样利用负数去计算
The text was updated successfully, but these errors were encountered: