思路:经典动态规划,设置数组dp[i][j] 记录[i][j] 位置的最短路径,由于只能向右或者向下走
所以dp[i][j]=min{dp[i-1][j],dp[i][j-1]}+m[i][j];
时间复杂度O(N*M),空间复杂度为O(N*M)
空间复杂度可以考虑通过状态压缩,压缩到O(min(N,M)),即通过滚动数组来记录状态变换,但是这种压缩的方法不适合需要输出路径过程的场景。无法回溯过程。
思路:经典动态规划,设置数组dp[i][j] 记录[i][j] 位置的最短路径,由于只能向右或者向下走
所以dp[i][j]=min{dp[i-1][j],dp[i][j-1]}+m[i][j];
时间复杂度O(N*M),空间复杂度为O(N*M)
空间复杂度可以考虑通过状态压缩,压缩到O(min(N,M)),即通过滚动数组来记录状态变换,但是这种压缩的方法不适合需要输出路径过程的场景。无法回溯过程。