题目描述
给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。
示例1
输入
复制
[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]
返回值
复制
12
备注:
1 \leq n,m \leq 20001≤n,m≤2000
1 \leq arr_{i,j} \leq 1001≤arri,j≤100
这道题标签上写了dp,dp好像也没什么好写的,对于dp[i][j]总是和左边上边的最小值加上i,j位置上的值就好了,最后返回dp[n][n],
刚开始用了dfs来写,不得不说dfs确实暴力,样例过了,也不知道自己写的对不对,但是时间复杂度是超了,个人感觉也没差吧,dfs的时间复杂度每个节点也算是遍历了全部节点,那也应该是O(n2),
用dp写也是双循环,不也挺高,个人感觉应该是自己的代码没过,牛客样例太少了,没力扣好
贴一下dfs代码
class Solution {
public:
/**
*
* @param matrix int整型vector<vector<>> the matrix
* @return int整型
*/