题目:给你一个二维数组,二维数组中的每个数都是正数,要求从左上角走到右下角,每一步只能向右或者向下。沿途经过的数字要累加起来。返回最小的路径和。
一、递归版本
- 如果矩阵为 n x n,那么时间复杂度为:O(
)。
递归版本虽然简单,但是时间复杂度过高,显然是不行的。通过分析发现,在递归过程中,会有很多重复的计算,如下图所示:
在计算(1,0)位置的右元素和计算(0,1)位置的下元素时,发生了重复计算:都是计算(1,1)位置到右下角的最小距离和。这里只是分析了两步,如果继续分析,会出现很多类似的重复计算过程。
- 递归版本代码实现
public class MinPathInMatrixWithRecursion {
public static in