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

力扣HOT100之多维动态规划:64. 最小路径和


这道题和上一道题62.不同路径套路很像,思路也比较简单,用二维dp数组做就可以了。直接上动规五部曲:
1.确定dp[i][j]的含义:从起点到位置为[i][j]处的最小路径和
2.确定递推公式 dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];
3.dp数组初始化 dp[0][j] = dp[0][j - 1] + grid[0][j]; dp[i][0] = dp[i - 1][0] + grid[i][0];
4.确定遍历顺序:从左往右,从上往下遍历
5.打印数组(省略)
思路比较简单,这里直接给代码了。

class Solution {
public:int minPathSum(vector<vector<int>>& grid) {//1.确定dp[i][j]的含义:从起点到位置为[i][j]处的最小路径和//2.确定递推公式  dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];//3.dp数组初始化  dp[0][j] = dp[0][j - 1] + grid[0][j]; dp[i][0] = dp[i - 1][0] + grid[i][0];//4.确定遍历顺序:从左往右,从上往下遍历//5.打印数组(省略)int m = grid.size();    //m行int n = grid[0].size();  //n列vector<vector<int>> dp(m, vector<int>(n));//初始化dp[0][0] = grid[0][0];for(int i = 1; i < m; i++)dp[i][0] = dp[i - 1][0] + grid[i][0];for(int j = 1; j < n; j++)dp[0][j] = dp[0][j - 1] + grid[0][j];for(int i = 1; i < m; i++){for(int j = 1; j < n; j++)dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + grid[i][j];}return dp[m - 1][n - 1];}
};

相关文章:

  • 普通二叉树 —— 最近公共祖先问题解析(Leetcode 236)
  • 力扣第452场周赛
  • BiliNote部署实践
  • docker使用sh脚本创建容器
  • mysql离线安装教程
  • 论文略读:LIMO: Less is More for Reasoning
  • Android Studio 之基础代码解析
  • NVM,Node.Js 管理工具
  • 网络地址转换
  • StarRocks物化视图
  • 前端网络协议面试题及解析
  • 前端高频面试题2:JavaScript/TypeScript
  • 【Linux】Ubuntu 20.04 英文系统显示中文字体异常
  • 【安全】VulnHub靶场 - W1R3S
  • CSP认证准备第四天-BFS(双端BFS/0-1BFS)和DFS
  • gcc编译构建流程-动态链接库
  • 电磁场与电磁波公式汇总
  • cursor如何开启自动运行模式
  • github 提交失败,连接不上
  • 【java面试】MySQL篇
  • 郑州网站建设服务商/昆明新闻头条最新消息
  • 潍坊作风建设网站/深圳广告公司排名
  • 河南省两学一做网站/越秀seo搜索引擎优化
  • 龙岗做网站公司szaow/免费二级域名生成网站
  • 利用切片做网站背景图片/nba球队排名
  • 天津做网站最权威的公司/推广平台排名前十名