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

Day49 动态规划part08

LC139单词拆分(未掌握)

  1. 未掌握分析:将字符串s中的各个字符看成是背包,思考成了多重背包问题
  2. 单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包装满。拆分时可以重复使用字典中的单词,说明就是一个完全背包!只不过与一般的完全背包不同的是需要考虑物品的顺序问题,物品并不能随意摆放在背包中
  3. dp数组的含义:dp[i] : 字符串长度为i的话,dp[i]为true,表示可以拆分为一个或多个在字典中出现的单词
  4. 确定递推公式:如果确定dp[j] 是true,且 [j, i] 这个区间的子串出现在字典里,那么dp[i]一定是true。(j < i )。
  5. 由题意可知,物品的摆放有顺序可言,因此是先遍历背包再遍历物品,是排列问题
  6. 代码
    在这里插入图片描述

多重背包问题

  1. 其实是和01背包一样,只不过是加了一个数量数组,将i类的物品的数量j摊开来看成是j类物品即可
  2. 多加一层循环用来复用j次i类物品
  3. 先物品再背包,并且背包从大到小防止物品复用
  4. 代码
    在这里插入图片描述
http://www.lryc.cn/news/366401.html

相关文章:

  • React -- memo允许你的组件在 props 没有改变的情况下跳过重新渲染。
  • 路径
  • 逆波兰表达式
  • git(其六)--总结
  • kafka-生产者拦截器(SpringBoot整合Kafka)
  • 每日一题:聊聊 Redis 过期键的删除策略
  • 边缘计算的AI小板——OrangePi AI Pro
  • RDMA (2)
  • vue.config.js中,devServer对象用于配置开发服务器的行为
  • JVM 运行流程
  • android-JNI
  • Go_unsafe包
  • 【HarmonyOS4学习笔记】《HarmonyOS4+NEXT星河版入门到企业级实战教程》课程学习笔记(十三)
  • 企业建站响应式网站建设平台版源码系统 海量模版可选择 带完整的安装代码以及搭建教程
  • 在 VSCode 中搭建 Flutter 开发环境并运行项目
  • 如何执行VMware P2V迁移|VMware Converter和替代方案
  • 03-3.2.3 队列的链式存储的实现
  • Spring AI 第二讲 之 Chat Model API 第八节Anthropic 3 Chat
  • 【ARM 常见汇编指令学习 6.2 -- ARMv8 汇编指令 SDIV 详细介绍】
  • 【ArcGIS微课1000例】0113:大地测量要素概述与构建
  • 【记录】LangChain+本地模型的文档问答(webUI)
  • Winddow系统下关于Golang使用Cgo的配置
  • python面向过程与初始面向对象编程
  • vue3 实现自定义指令封装 --- 通俗易懂
  • 5.31.15 使用图像到图像转换和 YOLO 技术对先前的乳房 X 光检查结果中的异常进行早期检测和分类
  • 题解web
  • 在keil5中打开keil4工程的方法
  • 【代码随想录算法训练营第37期 第二十四天 | LeetCode77. 组合】
  • 探索Linux中的`tree`命令:目录结构的可视化利器
  • ES 面试手册