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

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

[动态规划] (七) 路径问题: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.lryc.cn/news/218957.html

相关文章:

  • Mysql进阶-SQL优化篇
  • VueI18n中英文切换 vue2.0
  • VUE组件间通信的七种方式
  • 问chatgpt最近生活的困难
  • Flink源码解析八之任务调度和负载均衡
  • 4.3 传送门
  • NLP之Bert介绍和简单示例
  • 【Windows】Google和火狐浏览器禁用更新的操作方式
  • 关于编程不得不说的事
  • 2.4G合封芯片 XL2422,集成M0核MCU,高性能 低功耗
  • 【QT基础入门 控件篇】QLineEdit 基础、高级和样式表使用详解
  • 网络安全(网络安全)小白自学
  • dupeGuru 清理微信重复文件
  • 华为RS设备状态及接口配置命令
  • 单链表的应用(2)
  • 【Boost | C++】使用Boost库创建文件夹
  • 月报总结|Moonbeam 10月份大事一览
  • Latex安装记录
  • JavaEE-博客系统2(功能设计)
  • 2023年【高处安装、维护、拆除】免费试题及高处安装、维护、拆除找解析
  • antv/g6之交互模式mode
  • 基于8086电压表系统仿真系统设计
  • Docker与微服务实战——基础篇
  • 旧手机搭建linuxcentos
  • 使用pandas处理excel文件【Demo】
  • 【Maven】<dependencyManagement>详解
  • apache-tomcat-9.0.29 安装配置教程
  • 精品基于Python的图书借阅归还管控系统
  • gorm的自动化工具gen
  • dubbo没有找到生产者