LeetCode:2304. 网格中的最小路径代价(C++)

目录

2304. 网格中的最小路径代价

题目描述:

实现代码:

dp(dp有很多相似的经典题目,比较简单,不再给出解析)


2304. 网格中的最小路径代价

题目描述:

        给你一个下标从 0 开始的整数矩阵 grid ,矩阵大小为 m x n ,由从 0 到 m * n - 1 的不同整数组成。你可以在此矩阵中,从一个单元格移动到 下一行 的任何其他单元格。如果你位于单元格 (x, y) ,且满足 x < m - 1 ,你可以移动到 (x + 1, 0)(x + 1, 1), ..., (x + 1, n - 1) 中的任何一个单元格。注意: 在最后一行中的单元格不能触发移动。

每次可能的移动都需要付出对应的代价,代价用一个下标从 0 开始的二维数组 moveCost 表示,该数组大小为 (m * n) x n ,其中 moveCost[i][j] 是从值为 i 的单元格移动到下一行第 j 列单元格的代价。从 grid 最后一行的单元格移动的代价可以忽略。

grid 一条路径的代价是:所有路径经过的单元格的 值之和 加上 所有移动的 代价之和 。从 第一行 任意单元格出发,返回到达 最后一行 任意单元格的最小路径代价

示例 1:

输入:grid = [[5,3],[4,0],[2,1]], moveCost = [[9,8],[1,5],[10,12],[18,6],[2,4],[14,3]]
输出:17
解释:最小代价的路径是 5 -> 0 -> 1 。
- 路径途经单元格值之和 5 + 0 + 1 = 6 。
- 从 5 移动到 0 的代价为 3 。
- 从 0 移动到 1 的代价为 8 。
路径总代价为 6 + 3 + 8 = 17 。

示例 2:

输入:grid = [[5,1,2],[4,0,3]], moveCost = [[12,10,15],[20,23,8],[21,7,1],[8,1,13],[9,10,25],[5,3,2]]
输出:6
解释:
最小代价的路径是 2 -> 3 。 
- 路径途经单元格值之和 2 + 3 = 5 。 
- 从 2 移动到 3 的代价为 1 。 
路径总代价为 5 + 1 = 6 。

提示:

  • m == grid.length
  • n == grid[i].length
  • 2 <= m, n <= 50
  • grid 由从 0 到 m * n - 1 的不同整数组成
  • moveCost.length == m * n
  • moveCost[i].length == n
  • 1 <= moveCost[i][j] <= 100

实现代码:

dp(dp有很多相似的经典题目,比较简单,不再给出解析)

class Solution {
public:int minPathCost(vector<vector<int>>& grid, vector<vector<int>>& moveCost) {int m = grid.size(), n = grid[0].size();vector<vector<int>> f(m, vector<int>(n, 0x3f3f3f3f));for (int i = 0; i < n; i++) f[0][i] = grid[0][i]; // 初始化for (int i = 1; i < m; i++) {for (int j = 0; j < n; j++) {for (int k = 0; k < n; k++) {f[i][j] = min(f[i][j], f[i - 1][k] + moveCost[grid[i - 1][k]][j] + grid[i][j]);}}}int res = 0x3f3f3f3f;for (int i = 0; i < n; i++) {res = min(res, f[m - 1][i]);}return res;}
};

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

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

相关文章

Redis篇---第十四篇

系列文章目录 文章目录 系列文章目录前言一、为什么Redis的操作是原子性的,怎么保证原子性的?二、了解Redis的事务吗?四、Redis 的数据类型及使用场景前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男…

旧电脑升级记录

我把家里的电脑搬来了北京&#xff0c;但是这个配置在今天已经完全不够用了&#xff0c;而且我也喜欢折腾&#xff0c;我就想着花点时间&#xff0c;画最少的钱来升级一下。我对电脑的硬件还是懂一点的&#xff0c;装机也完全不是问题。 H61的主板,所以cpu我从E3 1230V2&#…

前端js调取摄像头并实现拍照功能

前言 最近接到的一个需求十分有意思&#xff0c;设计整体实现了前端仿 微信扫一扫 的功能。整理了一下思路&#xff0c;做一个分享。 tips: 如果想要实现完整扫一扫的功能&#xff0c;你需要掌握一些前置知识&#xff0c;这次我们先讲如何实现拍照并且保存的功能。 一. windo…

了解1688API接口测试 | 1688 API接口测试指南

在当今电子商务快速发展的时代&#xff0c;1688作为中国最大的B2B电子商务平台之一&#xff0c;为商家提供了丰富的商品资源和交易平台。为了方便商家进行商品管理和交易操作&#xff0c;1688提供了一系列的API接口&#xff0c;通过这些接口&#xff0c;商家可以方便地获取商品…

什么是凸函数

假设函数是定义在某个向量空间的凸子集上的实值函数&#xff0c;并且&#xff0c;如果对于中的任何两个向量和&#xff0c;都满足&#xff1a; 则称为上的凸函数

ubuntu 安装 towhee

安装Towhee pip3 install towhee如果你想在 towhee 中安装模型 pip3 install towhee.models打开python终端 python3引入towhee 数据转换是 Towhee 的核心&#xff1b;管道只是在有向无环图中连接在一起的一系列转换。所有预构建的 Towhee 管道都有代表当前任务的名称。 fr…

Oracle数据库如何定位trace file位置

用一个示例来说明吧。 在导入master key时&#xff0c;出现错误&#xff1a; ADMINISTER KEY MANAGEMENTIMPORT KEYS WITH SECRET "my_secret"FROM /tmp/export.expIDENTIFIED BY keypwd5 WITH BACKUP; ADMINISTER KEY MANAGEMENT * ERROR at line 1: ORA-46655…

动态规划求 x 轴上相距最远的两个相邻点 java 代码实现

如图为某一状态下 x 轴上的情况&#xff0c;此时 E、F相距最远&#xff0c;现在加入一个点H&#xff0c;如果H位于点A的左边的话&#xff0c;只需要比较 A、H 的距离 和 E、F 的距离&#xff1b;如果点H位于点G的右边&#xff0c;则值需要比较 G、H 的距离 和 E、F 的距离&…

前端实现表格生成序号001、002、003自增

我们最终想要实现的效果如图&#xff0c;从后端获取数据之后&#xff0c;不使用data中的id&#xff0c;而是使用自己生成的按照顺序自增的序号id。 script <template><el-table :data"sticker" border style"width: 100%" id"stickerList&q…

[Python人工智能] 四十.命名实体识别 (1)基于BiLSTM-CRF的威胁情报实体识别万字详解

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前一篇文章普及VS Code配置Keras深度学习环境,并对比常用的深度学习框架,最后普及手写数字识别案例。这篇文章将讲解如何实现威胁情报实体识别,利用BiLSTM-CRF算法实现对ATT&CK相关的技战术实体…

navicat --CSV导出数据乱码情况(三种情况解决方式)

CSV导出数据乱码情况分析及处理 在navicat 中有很多导出方式&#xff0c;大家都知道csv导出要比xlse要快很多&#xff0c;但是在使用csv导出时要防止乱码情况&#xff0c; 下面我列出三种处理方式&#xff08;如有其他方式大家可以帮忙补充一下&#xff09;&#xff1a; 文章目…

基于springboot实现班级综合测评管理系统项目【项目源码+论文说明】

基于springboot实现班级综合测评管理系统演示 摘要 随着互联网技术的高速发展&#xff0c;人们生活的各方面都受到互联网技术的影响。现在人们可以通过互联网技术就能实现不出家门就可以通过网络进行系统管理&#xff0c;交易等&#xff0c;而且过程简单、快捷。同样的&#x…

C#实现本地服务器客户端私聊通信

&#xff08;一&#xff09;需求 在游戏中我们经常能够看到玩家与玩家之间可以进行私聊&#xff0c;在QQ或微信中最基本的功能就是用户与用户之间的通信。抽象成计算机网络&#xff0c;就是两个客户端通过服务器进行私聊通信&#xff0c;两个客户端可以互相看到对方发送过来的信…

redis的高可用之持久化

1、redis的高可用考虑指标 &#xff08;1&#xff09;正常服务 &#xff08;2&#xff09;数据容量的扩展 &#xff08;3&#xff09;数据的安全性 2、redis实现高可用的四种方式 &#xff08;1&#xff09;持久化 &#xff08;2&#xff09;主从复制 &#xff08;3&…

这是基础校园二手交易框架

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>校园二手交易</title> <style> /* Reset stylesheet */ * { margin: 0; padding: 0; box-s…

Hive小文件处理

MR任务 mr任务参考链接 set hive.exec.reducers.max3 set hive.exec.dynamic.partition.mode true; --使用动态分区时&#xff0c;设置为ture。 set hive.exec.dynamic.partition.mode nonstrict; --动态分区模式&#xff0c;默认值&#xff1a;strict&#xff0c;表示必须…

搜维尔科技:Movella Xsens MVN LINK 实际应用,一镜到底!

搜维尔科技&#xff1a;Movella Xsens MVN LINK 实际应用&#xff0c;一镜到底&#xff01;

项目经理面试经典问题大揭秘:聪明回答,轻松获得心仪职位!

作为一名申请了项目管理职位的求职者&#xff0c;要顺利入职必须过了面试这一关。然而&#xff0c;你可能会对面试官可能会问什么问题以及如何回答好感到迷茫。以下是我整理的一些关于项目经理面试问题及回答技巧&#xff0c;希望对你有所帮助&#xff01; 招聘方&#xff08;P…

与客户沟通过程中的30个实用技巧

1.使谈判对手做肯定答复的问题 —Is it important that …? 连续发问沟通对手给予肯定答复的问题&#xff0c;最后引导他对你的主要建议也作肯定的答复&#xff0c;是绝对需要花费一番心思的。通常沟通对手只对自己有利的问题&#xff0c;才会痛快地回答“Yes”。因此&#…

uniapp 富文本以及移动端富文本的展示问题

富文本展示有几种方式: 1.<view v-html"content"></view> 2. uniapp自带组件 rich-text rich-text | uni-app官网 <rich-text :nodes"content"></rich-text> 3.uView组件 u-parse Parse 富文本解析器 | uView 2.0 - 全面兼…