在解 LeetCode 的过程中,路径计数问题是动态规划中一个经典的例子。今天我来分享一道非常基础但极具代表性的题目——不同路径。不仅适合初学者入门 DP(动态规划),还能帮助你打下递归思维的基础。
本文将介绍:
- 🔍 问题描述
- 💡 解题思路(包括递归+记忆化搜索)
- 🏆 代码实现与优化
- 📊 时间复杂度 & 空间复杂度分析
- 🔥 进阶思考
🔍 问题描述
一个机器人位于一个 m x n
的网格左上角(起点 Start
)。
机器人每次只能向 右 或 下 移动一步,试图到达网格的右下角(终点 Finish
)。
请问从起点到终点总共有多少条不同的路径?
✅ 示例
示例 1:
输入: m = 3, n = 7
输出: 28
示例 2:
输入: m = 3, n = 2
输出: 3
解释:
1. 向右 -> 向下 -> 向下
2. 向下 -> 向下 -> 向右
3. 向下 -> 向右