当前位置: 首页 > news >正文

最小路径和

dp问题描述

最小路径和
在这里插入图片描述

确定本题的状态表示

dp[i][j]表示的是矩阵从左上角走到(i,j)位置一路上的数字总和的最小值

确定本题的状态转移方程

本题的状态转移方程依然是
dp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i-1][j-1];
但是要注意边界条件,因为边界值初始化为0,我们比的又是最小值,所以当i和j位于矩阵数值边界时,不能把最外围那层0加进来比,否则会污染有效数据

填表求值

根据初始条件和状态转移方程,确定填表顺序,进而逐步填满dp表,最终返回题目要的结果

代码实现

class Solution {
public:int minPathSum(vector<vector<int>>& grid) {int m=grid.size();if(m==0) return 0;int n=grid[0].size();vector<vector<int>> dp(m+1,vector<int>(n+1,0));for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){if(i==1)dp[i][j]=dp[i][j-1]+grid[i-1][j-1];else if(j==1)dp[i][j]=dp[i-1][j]+grid[i-1][j-1];elsedp[i][j]=min(dp[i-1][j],dp[i][j-1])+grid[i-1][j-1];cout << "dp["<<i<<"]["<<j<<"]="<< dp[i][j]<< endl;}}return dp[m][n];}
};
http://www.xdnf.cn/news/1320427.html

相关文章:

  • 在职老D渗透日记day19:sqli-labs靶场通关(第26a关)get布尔盲注 过滤or和and基础上又过滤了空格和注释符 ‘)闭合
  • 线程(基本概念和相关命令)
  • LeetCode热题100--104. 二叉树的最大深度--简单
  • Rust:实现仅通过索引(序数)导出 DLL 函数的功能
  • STM32单片机学习日记
  • 网络常识-SSE对比Websocket
  • 记一次安装OpenStack(Stein)-nova报错问题解决
  • 数据赋能(396)——大数据——抽象原则
  • 智能汽车领域研发,复用云原生开发范式?
  • 48.Seata认识、部署TC服务、微服务集成
  • http工作流程
  • C++算法竞赛:位运算
  • 前端项目练习-王者荣耀竞赛可视化大屏 -Vue纯前端静态页面项目
  • 服务器管理与配置学习总结
  • MYSQL-175. 组合两个表
  • JavaScript性能优化实战(四):资源加载优化
  • LeetCode 837.新 21 点:动态规划+滑动窗口
  • 【数据结构】堆和二叉树详解——上
  • 旋钮键盘项目---foc讲解(闭环位置控制)
  • 学习Python中Selenium模块的基本用法(5:程序基本步骤)
  • Linux817 shell:until,nfs,random
  • 力扣438:找到字符串中所有的字母异位词
  • Django前后端交互实现用户登录功能
  • [python学习记录2]变量
  • 脉冲计数实现
  • Docker之自定义jkd镜像上传阿里云
  • 排列组合+数量+资料
  • 25. 能否创建一个包含可变对象的不可变对象
  • 编程算法实例-Armstrong数(阿姆斯特朗数)
  • IDE/去读懂STM32CubeMX 时钟配置图(有源/无源晶振、旁路/晶振模式、倍频/分频)