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

[LeetCode] Minimum Path Sum

Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.

Note: You can only move either down or right at any point in time.

 

Hide Tags
  Array Dynamic Programming
 
     找矩阵左上到右下的最短路径,标准的动态规划。
  1. 初始化统计矩阵的最上行,最右列。
  2. 从上往下,从左到右填写每格。
  3. 输出结果
 1 #include <iostream>
 2 #include <vector>
 3 using namespace std;
 4 
 5 
 6 class Solution {
 7 public:
 8     int minPathSum(vector<vector<int> > &grid) {
 9         int nrow = grid.size();
10         if(nrow==0) return 0;
11         int ncol = grid[0].size();
12         vector<vector<int> > cnt(nrow,vector<int>(ncol,0));
13         cnt[0][0] = grid[0][0];
14         for(int i =1;i<nrow;i++)
15             cnt[i][0]=cnt[i-1][0]+grid[i][0];
16         for(int j = 1;j<ncol;j++)
17             cnt[0][j]=cnt[0][j-1] + grid[0][j];
18         for(int i=1;i<nrow;i++){
19             for(int j=1;j<ncol;j++){
20                 cnt[i][j] = grid[i][j] + min(cnt[i-1][j],cnt[i][j-1]);
21             }
22         }
23         return cnt[nrow-1][ncol-1];
24     }
25 };
26 
27 int main()
28 {
29     vector<vector<int> > grid({{1,2,3},{4,5,6},{7,8,9}});
30     Solution sol;
31     cout<<sol.minPathSum(grid)<<endl;
32     for(int i=0;i<grid.size();i++){
33         for(int j=0;j<grid[i].size();j++)
34             cout<<grid[i][j]<<" ";
35         cout<<endl;
36     }
37     return 0;
38 }
View Code

 

转载于:https://www.cnblogs.com/Azhu/p/4153903.html

相关文章:

  • 安卓开发学习2-官方例子Accelerometer
  • 程序与数据库之间的连接桥梁和逻辑处理
  • html5本地存储之application cache
  • 使用jboss管理控制台部署应用
  • 用HTML5的DOCTYPE标签兼容各版本IE浏览器的方法技术
  • 非常值得学习的java 绘图板源代码
  • ubuntu系统使用快捷键打开终端方式总结
  • checkbox全选,反选,全部取消
  • Daily scrum 12.18
  • Android蓝牙通信代码
  • 关于杭州爱名网络劫持dns的无耻行径
  • malloc、free、new、delete
  • 如何使用Android Studio开发/调试Android源码
  • js ==与===区别
  • 通配符的匹配很全面, 但无法找到元素 'xxxx'
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • .pyc 想到的一些问题
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 11111111
  • CentOS 7 防火墙操作
  • JS学习笔记——闭包
  • php中curl和soap方式请求服务超时问题
  • windows-nginx-https-本地配置
  • 搞机器学习要哪些技能
  • 前端代码风格自动化系列(二)之Commitlint
  • 深入 Nginx 之配置篇
  • 实战|智能家居行业移动应用性能分析
  • 以太坊客户端Geth命令参数详解
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​Spring Boot 分片上传文件
  • #单片机(TB6600驱动42步进电机)
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (145)光线追踪距离场柔和阴影
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (2022 CVPR) Unbiased Teacher v2
  • (7)STL算法之交换赋值
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (九十四)函数和二维数组
  • (十三)Flask之特殊装饰器详解
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (一)u-boot-nand.bin的下载
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)http协议
  • (转)Mysql的优化设置
  • (转)Scala的“=”符号简介
  • (转载)Linux 多线程条件变量同步
  • .NET gRPC 和RESTful简单对比
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .net 使用ajax控件后如何调用前端脚本
  • .NET/C# 使窗口永不获得焦点
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • [120_移动开发Android]008_android开发之Pull操作xml文件