C++ 矩阵的最小路径和解法

描述

给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。

数据范围: 1≤𝑛,𝑚≤5001≤n,m≤500,矩阵中任意值都满足 0≤𝑎𝑖,𝑗≤1000≤ai,j​≤100

要求:时间复杂度 𝑂(𝑛𝑚)O(nm)

例如:当输入[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]时,对应的返回值为12,

所选择的最小累加和路径如下图所示:

示例1

输入:

[[1,3,5,9],[8,1,3,4],[5,0,6,1],[8,8,4,0]]

返回值:

12
#include <vector>class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param matrix int整型vector<vector<>> the matrix* @return int整型*/int minPathSum(vector<vector<int> >& matrix) {// write code hereif(matrix.empty()){return 0;}int n = matrix.size();int m = matrix[0].size();std::vector<std::vector<int>> dp(n + 1, std::vector<int>(m+1,0));dp[0][0] = matrix[0][0]; //起始点for(int i = 1; i < n; i++) //只能向下走的情况{dp[i][0] = matrix[i][0] + dp[i-1][0];}for(int j = 1; j < m; j++) //只能向右走的情况{dp[0][j] = matrix[0][j] + dp[0][j-1];}for(int i = 1; i < n; i++) //既能向右走,又能向下走{for(int j = 1; j < m; j++){dp[i][j] = matrix[i][j] +  std::min(dp[i-1][j], dp[i][j-1]); //选择最小的走向}}return dp[n-1][m-1];}};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/31350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【总线】AXI4第四课时:信号描述

大家好,欢迎来到今天的总线学习时间!如果你对电子设计、特别是FPGA和SoC设计感兴趣&#xff0c;那你绝对不能错过我们今天的主角——AXI4总线。作为ARM公司AMBA总线家族中的佼佼者&#xff0c;AXI4以其高性能和高度可扩展性&#xff0c;成为了现代电子系统中不可或缺的通信桥梁…

Cancer Discovery | 非小细胞肺癌的空间蛋白组学研究再添新篇章

非小细胞肺癌&#xff08;NSCLC&#xff09;作为最常见的肺癌亚型&#xff0c;其治疗和预后的改善一直是医学研究的重点。由肿瘤细胞、免疫细胞、成纤维细胞等多种细胞类型组成的肿瘤微环境&#xff08;TME&#xff09;已被证实在肺癌的进展、转移和治疗响应中扮演着重要的角色…

如何开发一套基于C#和.NET 6.0手术麻醉系统? 手术麻醉系统源码

如何开发一套基于C#和.NET 6.0手术麻醉系统&#xff1f; 手术麻醉系统源码 基于C#和.NET 6.0开发的手术麻醉系统是一个涉及多个层面的复杂项目。 以下是一个概述性的步骤&#xff0c;帮助你开始这个项目&#xff1a; 一、项目规划和需求分析 1、确定项目目标&#xff1a;明确…

如何使用 ArcGIS Pro 和 Landsat 8 影像计算叶绿素指数和全球环境监测指数

GIS 工具和技术的出现极大地帮助了识别、量化和解决问题。GIS 还通过研究可能的情况并实施预防方案提供了一种主动的解决方案。多年来&#xff0c;GIS 通过电信和网络服务、事故/事件分析、城市规划、交通规划、环境影响评估、洪水损失估计、自然资源管理、环境健康和安全、植被…

TikTok API接口——获取TikTok用户QRcode二维码

一、引言 在数字化时代&#xff0c;QRcode二维码已经成为连接线上线下的重要桥梁。在社交媒体领域&#xff0c;TikTok作为短视频领域的佼佼者&#xff0c;用户量庞大且活跃度高。为了满足用户之间更便捷的互动需求&#xff0c;我们特别开发了一款针对TikTok平台的接口&#xf…

2024年华为OD机试真题-反射计数-C++-OD统一考试(C卷D卷)

2024年OD统一考试(D卷)完整题库:华为OD机试2024年最新题库(Python、JAVA、C++合集) 题目描述: 给定一个包含 0 和 1 的二维矩阵 给定一个初始位置和速度 一个物体从给定的初始位置触发, 在给定的速度下进行移动, 遇到矩阵的边缘则发生镜面反射 无论物体经过 0 还是 1,…

浅谈请求中数据转换

目录 1. 前端 JS 数据类型2. JSON 数据类型&#xff08;数据传输格式&#xff09;3. 后端 Java 数据类型4. 后端序列化框架 Fastjson && Jackson 转换4.1. JSON 转换 Java4.2. Java 转换 JSON 1. 前端 JS 数据类型 数据类型示例Stringvar str 张三Number (数字)var a…

C++ 多线程举例

C++ 多线程 在C++中,多线程编程是一种常见的并发编程方式,可以使用标准库中的库实现多线程。通过这些示例,我们展示了如何在C++中使用多线程,包括创建和启动线程、传递参数、线程间同步以及条件变量的使用。多线程编程在提高程序并发性能方面非常有用,但需要注意同步和数…

django网站前端开发-上传文件

django在做网站前端开发时&#xff0c;在网页上嵌入一个上传pdf文档的按钮&#xff0c;点击该按钮&#xff0c;弹出选择文件 在 Django 项目中&#xff0c;前端嵌入上传 PDF 文档的按钮并处理文件上传的基本步骤如下&#xff1a; 创建 Django 应用和模型&#xff1a; 1.1. 创建…

聊聊最近比较火的AI产品做互联网算法备案

今年AI&#x1f525;了&#xff0c;而且是大火&#xff0c;导致监管部门相继出台相关政策&#xff0c;需要管控下&#xff0c;所以互联网算法备案就自然而然重新被提出来。其实这个互联网算法备案去年就已经开始实施了&#xff0c;去年只有几个大厂比如BAT等互联网巨头等会去弄…

【系统设计】如何权衡范式与反范式设计

一、什么是范式设计与反范式设计 1.1、范式设计&#xff08;Normalization&#xff09; 定义&#xff1a; 范式设计是数据库设计中最基础的设计原则之一&#xff0c;它主要通过规范化数据模型&#xff0c;减少数据冗余和数据不一致的问题。 常用的范式&#xff1a; 第一范式…

xv6 qemu 卡在Booting from Hard Disk...

定位到xv6目录下的kernel.ld的第25行 .stab:{ 修改成 .stab : AT(LOADADDR(.rodata) SIZEOF(.rodata)){

Netty中的各个关键时间点(一)

前置说明 本文主要记录Netty中的一些主要的关键时间点&#xff0c;是理解Netty 和 事件驱动的关键。也是阅读Netty源码的指导。 代码来源&#xff1a;Netty 4.1.77 本文涉及到的角色&#xff1a; 角色&#xff1a;主线程&#xff0c;主Reactor线程&#xff08;bossGroup中的…

Linux连接工具MobaXterm详细使用教程

目录 一、MobaXterm的下载 1、访问官网 2、下载便携版 3、启动MobaXterm 二、MobaXterm基本使用设置 1、新建会话 2、使用ssh连接第一个会话 3、设置主密码 4、主界面 5、sftp文件上传下载 6、文件拖拽的上传下载 7.右键粘贴 8、查看服务器监测信息​编辑 9、个…

进军韩国5G市场!移远通信5G模组RG500L-EU率先获得KT、LGU+认证

近日&#xff0c;移远通信工规级5G模组RG500L-EU再传喜讯&#xff0c;率先通过了韩国两大运营商KT和LGU的严格认证。​在此之前&#xff0c;该模组已顺利通过KC认证&#xff08;韩国法规认证&#xff09;&#xff0c;此次再获运营商认证表明&#xff0c;RG500L-EU已完全满足韩国…

LeetCode LCP 61. 气温变化趋势

别怕麻烦&#xff0c;模拟题有时候就是要多写一些条件&#xff08;或者你思维很活跃找出规律&#xff09;&#xff0c;代码如下&#xff1a; class Solution { public:int temperatureTrend(vector<int>& temperatureA, vector<int>& temperatureB) {int …

斗地主游戏

找了个斗地主的项目&#xff0c;github项目地址&#xff1a;https://github.com/zhuang0/BoYaDDZ/tree/master/BoyaDDZ。在此基础上做些修改和优化&#xff0c;为了方便国内访问&#xff0c;上传到gitee上。 gitee地址: https://gitee.com/zhagnjinaaaa/android-ddz v0.0.1解决…

Linux基础篇

Linux 本文章是在B站的尚课听的&#xff0c;但是由于版本较老&#xff0c;而且是以centOS学习Linux&#xff0c;由于CentOS在10天后就不再更新&#xff0c;被抛弃了&#xff0c;痛定思痛&#xff0c;及时停课。但是又不想浪费笔记&#xff0c;前来保存一下。 文章目录 Linux前…

个人介绍~

摘要 大家好&#xff0c;很高兴以这种方式见到大家。本篇文章可能会很长&#xff0c;如果您不喜欢长文章或者笔者&#xff0c;就早早出门右拐&#xff08;不喜勿喷&#xff09;。本篇会持续更新&#xff0c;记录个人从大学生涯到毕业后求职&#xff0c;工作&#xff0c;个人爱好…

mindspore打卡第三课模型定义和训练全流程

python import mindspore from mindspore import nn, ops class Network(nn.Cell): ### 先定义类合参数 需要初始化实例 def __init__(self): super().__init__() self.flatten nn.Flatten() self.dense_relu_sequential nn.SequentialCell(…