[动态规划] (七) 路径问题:LCR 166.剑指offer 47. 珠宝的最高价值

news2024/11/24 18:52:45

[动态规划] (七) 路径问题:LCR 166./剑指offer 47. 珠宝的最高价值

文章目录

      • [动态规划] (七) 路径问题:LCR 166./剑指offer 47. 珠宝的最高价值
        • 题目解析
        • 解题思路
          • 状态表示
          • 状态转移方程
          • 初始化和填表顺序
        • 返回值
        • 代码实现
        • 总结

LCR 166. 珠宝的最高价值

image-20231105154428372

题目解析

(1) 二维矩阵中存放的是每个珠宝的价值

(2) 从左上角取到右下角

(3) 只能向右或者向下移动

解题思路

image-20231105165348213

状态表示

按照以往的经验:dp[i] [j] 以(i,j)位置为终点,得到的珠宝总价值。

状态转移方程

以状态表示可以得出:

dp(i,j)取决于两个位置的价值:dp(i-1,j)和dp(i, j-1)。

所以dp(i,j)就等于它们两个的最大值,再加上(i,j)位置对应的价值。

所以

dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + (i,j)位置对应的价值
初始化和填表顺序
  • 初始化

image-20231105164738200

初始化时,只需要处理一下第一行和第一列的边界情况即可。

所以我们多开辟一列和一行(蓝色格子),又由于 dp(i,j)就等于它们两个的最大值,再加上(i,j)位置对应的价值。所以我们只需要将多开辟的初始化为0即可。我们在创建dp数组时,扩容后正好是0。

  • 填表顺序

一列一列填表即可。

返回值

多开辟一列和一行,返回dp[m] [n]即可。

看到这里,大家可以先尝试实现代码,再接下来看下面的内容。


代码实现
class Solution {
public:
    int jewelleryValue(vector<vector<int>>& frame) {
        //创建dp数组
        int m = frame.size(), n = frame[0].size();
        vector<vector<int>> dp(m+1, vector<int>(n+1));
        //初始化
        // dp[1][1] = frame[0][0];
        //填表
        for(int i = 1; i <= m; i++)
            for(int j = 1; j <= n; j++)
                dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + frame[i-1][j-1];
        //返回值
        return dp[m][n];
    }
};

image-20231105165616179

总结

细节:多开辟一列一行,相当于我们将下标向右下方移动。所以最后在找原数组中对应位置,行和列下标应该都进行减1。如,frame[i-1] [j-1]

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

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

相关文章

一致性哈希在分库分表的应用

文章目录 前言分库分表方法一致性哈希介绍分库分表的应用 总结 前言 大家应该都知道一些哈希算法&#xff0c;比如MD5、SHA-1、SHA-256等&#xff0c;通常被用于唯一标识、安全加密、数据校验等场景。除此之外&#xff0c;还有一种应用是对某个数据进行哈希取模映射到一个有限…

【数据开发】大数据平台架构,Hive / THive介绍

1、大数据引擎 大数据引擎是用于处理大规模数据的软件系统&#xff0c; 常用的大数据引擎包括Hadoop、Spark、Hive、Pig、Flink、Storm等。 其中&#xff0c;Hive是一种基于Hadoop的数据仓库工具&#xff0c;可以将结构化的数据映射到Hadoop的分布式文件系统上&#xff0c;并提…

什么是防火墙?详解三种常见的防火墙及各自的优缺点

目录 防火墙的定义 防火墙的功能 防火墙的特性 防火墙的必要性 防火墙的优点 防火墙的局限性 防火墙的分类 分组过滤防火墙 优点&#xff1a; 缺点&#xff1a; 应用代理防火墙 优点 缺点 状态检测防火墙 优点 缺点 防火墙的定义 防火墙的本义原是指古代人们…

【蓝桥杯选拔赛真题11】C++求平方 青少年组蓝桥杯C++选拔赛真题 STEMA比赛真题解析

目录 C/C++求平方 一、题目要求 1、编程实现 2、输入输出 二、算法分析

基于.NET、Uni-App开发支持多平台的小程序商城系统 - CoreShop

前言 小程序商城系统是当前备受追捧的开发领域&#xff0c;它可以为用户提供一个更加便捷、流畅、直观的购物体验&#xff0c;无需下载和安装&#xff0c;随时随地轻松使用。今天给大家推荐一个基于.NET、Uni-App开发支持多平台的小程序商城系统&#xff08;该商城系统完整开源…

前端框架Vue学习 ——(二)Vue常用指令

文章目录 常用指令 常用指令 指令: HTML 标签上带有 “v-” 前缀的特殊属性&#xff0c;不同指令具有不同含义。例如: v-if, v-for… 常用指令&#xff1a; v-bind&#xff1a;为 HTML 标签绑定属性值&#xff0c;如设置 href&#xff0c;css 样式等 <a v-bind:href"…

NLP入门——基础知识

生成式AI和AIGC&#xff1a; 生成式AI所生成的内容就是AIGC AI的Venn图&#xff1a; 注意&#xff1a; 监督学习&#xff08;训练数据带标签&#xff09;&#xff1a; 经典的监督学习任务包括分类&#xff08;划分类别&#xff09;和回归&#xff08;预测&#xff09;&#x…

基于葡萄串的采摘点定位方法

文章目录 概要所需设备方法基于RGB图像的YOLOV8目标检测基于深度图的区域种子生长利用峰值定位法来确定竖向位置核心代码演示效果概要 这里将介绍如何用图像识别方法来定位葡萄串采摘点,用于机器人自动采摘操作。 所需设备 深度相机,这里我用的是realsense-L515 方法 主…

python爬虫(数据获取——双R)

静态资源加载 静态资源给了请求头和url即可 动态资源加载 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 } url "https://www.xinpianchang.com/api/xpc/comments/article…

【论文精读】PlanT: Explainable Planning Transformers via Object-Level Representations

1 基本信息 院校&#xff1a;德国的图宾根大学 网站&#xff1a;https://www.katrinrenz.de/plant 2 论文背景 2.1 现有问题 现在的基于学习的方法使用高精地图和BEV&#xff0c;认为准确的&#xff08;达到像素级的pixel-level&#xff09;场景理解是鲁棒的输出的关键。re…

SpringBoot案例(数据层、业务层、表现层)

1.创建项目 2.选择坐标 3.添加坐标 说明&#xff1a;为了便于开发&#xff0c;引入了lombak坐标。 <!--添加mybatis-plus坐标--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><ver…

JavassmMySQL宠物网站系统07183-计算机毕业设计项目选题推荐(附源码)

摘 要 在信息飞速发展的今天&#xff0c;网络已成为人们重要的信息交流平台。宠物网站每天都有大量的信息需要通过网络发布&#xff0c;为此&#xff0c;本人开发了一个基于B/S&#xff08;浏览器/服务器&#xff09;模式的宠物网站系统。 该系统以JJava编程语言、MySQL和SSM框…

【Mac环境搭建】JDK安装、多JDK安装与切换

文章目录 JDK下载与安装下载安装 配置环境变量安装多个JDK共存 JDK下载与安装 下载 Oracle官网提供了非常多个版本的JDK供下载&#xff0c;可以点击如下链接重定向到JDK下载页面 ORACLE官网JDK下载 安装 下面的官方文档可以点开收藏到浏览器的收藏夹&#xff0c;这样后续在开…

【算法】新年好(堆优化dijkstra)

题目 重庆城里有 n 个车站&#xff0c;m 条 双向 公路连接其中的某些车站。 每两个车站最多用一条公路连接&#xff0c;从任何一个车站出发都可以经过一条或者多条公路到达其他车站&#xff0c;但不同的路径需要花费的时间可能不同。 在一条路径上花费的时间等于路径上所有公路…

选择困难症的我,最终选择了Amazon EC2 云服务器

前言 作为一名开发者&#xff0c;如果要部署一个自己的网站&#xff0c;选择一个好的服务器是非常重要的。本文依据我个人使用服务器的经验&#xff0c;给大家在选择时一些建议。我非常推荐大家使用 Amazon EC2 云服务器。 Amazon EC2 云服务器 提供了最广泛、最深入的计算平…

yum提示Another app is currently holding the yum lock

打算centos 7配置一下docker&#xff0c;报错了&#xff0c;yum提示Another app is currently holding the yum lock; waiting for it to exit... 可能是系统自动升级正在运行&#xff0c;yum在锁定状态中。已经有一个yum进程在运行了&#xff0c;使用kill干掉它&#xff1a; …

【DevChat】智能编程助手,告别敲代码烦恼,从此爱上AI编程

&#x1f50e;官方网站&#xff1a;https://www.devchat.ai/ 文章目录 一、DevChat介绍&#x1f447;二、DevChat优势&#x1fa81;三、DevChat注册流程篇&#x1f380;四、DevChat使用教程篇&#x1f4e2;1. DevChat插件安装配置⚒️2. 与DevChat问答交流&#x1f523;3. DevC…

【Kotlin精简】第7章 泛型

1 泛型 泛型即 “参数化类型”&#xff0c;将类型参数化&#xff0c;可以用在类&#xff0c;接口&#xff0c;函数上。与 Java 一样&#xff0c;Kotlin 也提供泛型&#xff0c;为类型安全提供保证&#xff0c;消除类型强转的烦恼。 1.1 泛型优点 类型安全&#xff1a;通用允许…

分享68个工作总结PPT,总有一款适合您

分享68个工作总结PPT&#xff0c;总有一款适合您 PPT下载链接&#xff1a;https://pan.baidu.com/s/1juus0gmesBFxJ-5KZgSMdQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易。知识付…

【数据结构】数组和字符串(十五):字符串匹配2:KMP算法(Knuth-Morris-Pratt)

文章目录 4.3 字符串4.3.1 字符串的定义与存储4.3.2 字符串的基本操作4.3.3 模式匹配算法0. 朴素模式匹配算法1. ADL语言2. KMP算法分析3. 手动求失败函数定义例1例2例3 4. 自动求失败函数&#xff08;C语言&#xff09;5. KMP算法&#xff08;C语言&#xff09;6. 失败函数答案…