题目链接
英文链接:https://leetcode.com/problems/out-of-boundary-paths/
中文链接:https://leetcode-cn.com/problems/out-of-boundary-paths/
题目详述
给定一个 m × n 的网格和一个球。球的起始坐标为 (i,j) ,你可以将球移到相邻的单元格内,或者往上、下、左、右四个方向上移动使球穿过网格边界。但是,你最多可以移动 N 次。找出可以将球移出边界的路径数量。答案可能非常大,返回 结果 mod 109 + 7 的值。
示例 1:
1 | 输入: m = 2, n = 2, N = 2, i = 0, j = 0 |
示例 2:
1 | 输入: m = 1, n = 3, N = 3, i = 0, j = 1 |
说明:
- 球一旦出界,就不能再被移动回网格内。
- 网格的长度和高度在 [1,50] 的范围内。
- N 在 [0,50] 的范围内。
题目详解
记忆化搜索。dp[i][j][k]
表示处于坐标 (i, j) 剩下 k 步时可以将球移出边界的路径数量。
1 | public class LeetCode_00576 { |
也可以运用动态规划。由于每一步只与上一步有关,可以将空间复杂度从三维降为二维。
1 | public class LeetCode_00576 { |