算法训练day51Leetcode139.单词拆分 多重背包了解 背包问题总结

139.单词拆分

. - 力扣(LeetCode)

题目分析

  1. 初始化:初始化一个布尔型向量dp,大小为s.size() + 1,所有值初始化为false,除了dp[0]被设置为true。这个布尔数组代表字符串s[0..i]能否通过拼接字典中的单词来形成。dp[0] = true的原因是一个空字符串总是可以被形成。

  2. 转换wordDict:输入的wordDict被转换成一个无序集合wordset,以便高效查找单词。

  3. 动态规划循环:代码使用两个嵌套循环来填充dp数组:

    • 外循环从1迭代到s.size(),包含。这表示当前考虑的子字符串的长度。
    • 内循环从0迭代到s.size(),包含。这表示被考虑的子字符串的起始索引。
    • 对于每对(i, j),其中i > j,代码检查子字符串s[j, i-j](代表sj开始长度为i-j的子字符串)是否在wordset中,以及dp[j]是否为true。如果这两个条件都满足,意味着当前的子字符串s[j, i-j]可以通过拼接字典中的单词来形成,并且j之前的子字符串也形成了有效序列,所以将dp[i]设置为true
  4. 打印dp数组:在DP表填充完成后,代码打印了dp数组的值,显示在每个索引i处,子字符串s[0..i-1]是否可以被分割成一个或多个字典中的单词。

  5. 返回值:最后,返回dp[s.size()],表示整个字符串s是否可以被分割成一个序列的字典单词

acm模式代码        

#include <iostream>
#include <vector>
#include <string>
#include <unordered_set>class Solution {
public:bool wordBreak(std::string s, std::vector<std::string>& wordDict) {std::vector<bool> dp(s.size() + 1, false);dp[0] = true;std::unordered_set<std::string> wordset(wordDict.begin(), wordDict.end());for (int i = 1; i <= s.size(); i ++) {for (int j = 0; j <= s.size(); j ++) {if (i > j) {if (wordset.find(s.substr(j , i - j)) != wordset.end() && dp[j] ) {dp[i] = true;}}}}for (auto i: dp) std::cout << i << " " ;std::cout << std::endl;return dp[s.size()];}
};int main() {Solution sol;std::string s = "leetcode";std::vector<std::string> wordDict = {"leet", "code"};bool res = sol.wordBreak(s, wordDict);std::cout << "res:" << res << std::endl;
}

多重背包了解

代码随想录

背包问题总结

代码随想录

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

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

相关文章

CMT(Cross Modal Transformer)实验环境搭建

项目地址&#xff1a;https://github.com/junjie18/CMT 论文地址&#xff1a;https://arxiv.org/pdf/2301.01283.pdf 环境&#xff1a;Ubuntu 20.04、cuda 11.1、python 3.8 1.创建虚拟环境CMT conda create -n CMT python3.8 -y conda activate CMT2.安装pytorch的GPU版本&am…

U盘惊变:文件夹竟成应用程序?数据恢复全攻略!

一、U盘突发异状&#xff1a;文件夹秒变应用程序 在数字化时代&#xff0c;U盘作为便携存储设备&#xff0c;在日常生活和工作中扮演着重要角色。然而&#xff0c;近期不少用户反映&#xff0c;他们的U盘突然出现了诡异的现象&#xff1a;原本整齐划一的文件夹图标&#xff0c…

STM32G473之flash存储结构汇总

STM32G4系列单片机&#xff0c;为32位的微控制器&#xff0c;理论上其内部寄存器地址最多支持4GB的命名及查找&#xff08;2的32次方&#xff0c;地址命名为0x00000000至0xFFFFFFFF&#xff09;。STM32官方对4GB的地址存储进行编号时&#xff0c;又分割成了8个block区域&#x…

vulnhub靶场之driftingblues-3

一.环境搭建 1.靶场描述 get flags difficulty: easy about vm: tested and exported from virtualbox. dhcp and nested vtx/amdv enabled. you can contact me by email for troubleshooting or questions. This works better with VirtualBox rather than VMware 2.靶场…

Markdown 编辑器使用

CSDN 在博客开头加上 [TOC](你的目录标题)就可以根据博客内容自动生成如下所示的目录&#xff1a; 你的目录标题 Markdown 编辑器功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表无序列表…

代码设计原则

目录 软件设计的本质设计模式的六大原则设计模式的三种模式框架设计 软件设计的本质 开闭原则&#xff0c;核心是高内聚&#xff0c;低耦合 设计模式的六大原则 单一职责原则&#xff1a;就一个类而言&#xff0c;应该仅有一个引起它变化的原因开闭原则&#xff1a;对扩展开…

如何压缩视频到最小?教会你压缩原理~

在网上上传视频时&#xff0c;经常会遇到因为视频体积过大上传失败等情况发生&#xff0c;怎么降低视频体积呢&#xff1f;科普一个小知识&#xff1a;视频体积和视频的时长、编码格式、分辨率和比特率&#xff08;又称码率&#xff09;有关。视频文件大小计算公式&#xff1a;…

如何优化财务管理?中小型外贸企业实用指南

在当今全球化的商业环境中&#xff0c;越来越多的中小企业涉足外贸领域&#xff0c;以寻求更广阔的市场和发展空间。在这一过程中&#xff0c;财务管理的重要性尤为凸显&#xff0c;需关注外汇风险、税务合规性、现金流等多个方面的问题。 一、中小企业外贸财务管理难题 币种核…

Python入门练习 - 学生管理系统

Python 实现读书管理系统 """ 实现一个命令行版的读书管理系统 """ import os.path import sys# 使用这个全局变量&#xff0c;来管理所有的学生信息 # 这个列表的每个元素都是一个‘字典’&#xff0c;每 个 字典就分别表示了一个同学students …

okcc呼叫中心系统如何配置呼入?

在OKCC呼叫中心系统中配置呼入通常包括以下步骤&#xff1a; 登录管理界面&#xff1a;使用管理员账户登录OKCC系统。 创建呼入号码&#xff1a;在系统内添加或选择一个用于呼入的电话号码&#xff0c;并将其与呼入队列关联。 设置呼入队列&#xff1a;配置呼入队列的基本参数…

利用R语言和curl库实现网页爬虫的技术要点解析

R语言简介 R语言是一种自由、跨平台的编程语言和软件环境&#xff0c;专门用于统计计算和数据可视化。它具有丰富的数据处理、统计分析和图形展示功能&#xff0c;被广泛应用于数据科学、机器学习、统计建模等领域。 R语言技术优势 丰富的数据处理功能&#xff1a; R语言拥有…

【C++】静态成员

静态成员在 C 类中是一个重要的概念&#xff0c;它包括静态成员变量和静态成员函数。 一、静态成员变量 1.理论 定义&#xff1a;由关键字static修饰类体中成员&#xff0c;称为类静态成员&#xff08;static class member&#xff09;。特点&#xff1a;静态成员变量是类的所…

Python实现猜数字游戏:一次编程旅程

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

Vue3+Element Plus+TS开发企业管理后台(一)

系列文章&#xff0c;讲述一个企业管理后台的前后端设计&#xff0c;持续集成常见的页面功能和服务端设计思路。 效果展示 支持多种布局、主题配色随意切换 侧边菜单背景设置 主题色调切换 移动端完美适配 菜单侧边收起&#xff0c;适合移动端小空间场景。 功能开发计划 #merm…

外包干了4年,技术退步明显。。。。

说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入上海某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&a…

【机器学习】代价函数

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

【LVGL-界面切换】

LVGL-界面切换 ■ LVGL-界面切换■ 方法一&#xff1a; 删除法■ 方法二&#xff1a; 隐蔽法 ■ LVGL-界面切换 ■ 方法一&#xff1a; 删除法 当用户删除一个父对象时&#xff0c;它所有的子对象也会被一并删除。 可以调用 lv_obj_del 函数&#xff0c;直接删除基础对象&…

PD DRP+OTG 极致简单玩转边充电边传输数据

在USB2.0端口的Data Role里&#xff0c;USB根据数据传输的方向定义了Host/Device/OTG三种角色&#xff0c;其中OTG即可作为Host&#xff0c;也可作为Device&#xff0c;在Type-C中&#xff0c;也有类似的定义&#xff0c;只是名字有了些许修改。 1. DFP (Downstream Facing Po…

MySQL基础语法之判断语句的学习如何将检索数据的返回值赋值给变量,以及如何查看变量

3月25日 条件函数 条件函数 select if(1<0,正确,错误); -- 1<0是条件&#xff0c;当条件正确后&#xff0c;则放回第一个值&#xff0c;正确&#xff0c;如果错误将返回第二个值错误 select ifnull(null,hello world) -- 用于检测数据是否为空值&#xff0c;如果为空值…