434
社区成员
发帖
与我相关
我的任务
分享 f[i][j]:从 (1,1) 到 (i,j) 路径数字和最小值,路径只能从上方或左方来。
i>1时,f[i][j]=min(f[i][j],f[i - 1][j]+w[i][j])。
j>1时,f[i][j]=min(f[i][j],f[i][j - 1]+w[i][j])。
i==1&&j==1时,f[i][j]=w[i][j]。
时间复杂度:O(n^2),两层n次循环。
空间复杂度:O(n^2),f和w二维数组。
动态规划关键在于通过存储子问题的解避免重复计算。就是把大问题拆成小问题,把小问题的答案存起来。先定好每个小问题的状态,再找出状态之间的关系,还要知道最初的情况。这样就能高效解决复杂问题,关键是要分析好问题,找对这些关键元素。