动态规划解决机器人网格路径问题!
想获得更好的排版,请移步个人博客: https://pushy.site 无障碍物 题目(原题见 LeetCode - 62. 不同路径 ):一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人 每次只能向下或者向右移动一步 。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径? 示例 1: 输入: m = 3, n = 2 输出: 3 解释: 从左上角开始,总共有 3 条路径可以到达右下角。 1. 向右 -> 向右 -> 向下 2. 向右 -> 向下 -> 向右 3. 向下 -> 向右 -> 向右 通过观察我们我们得出以下两个特点: 机器人所在的 正东方向和正南方向,只能有一条路径可以走,即直走 。 到某个点的路径 = 到该点 上一个单位的点 路径 + 到该点 左一个单位的点 路径。 为了验证第二个特点,我们假设网格是 2 * 2。如下图所示, 从 A 到达 D 点的路径总和就等于 A 点到达 B 点的路径 + 到达 C 点的路径总和 。 这样,我们不难写出递归代码: public int solution(int m, int n) { if (m <= 0 || n <= 0) return 0; else if (m == 1 || n == 1) return 1; int result = 0