题目:
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。
问总共有多少条不同的路径?
思路:
根据题意,设机器人走到m,n处总共有f(m,n)条不同的路径。则f(m,n)=f(m-1,n)+f(m,n-1)。由此递推式即可写出动态规划代码。
代码:
1 | // DP |
复杂度分析:
动态规划:
时间复杂度:
O(n2)。
空间复杂度:
O(n2)。