【LeetCode热题100】【动态规划】单词拆分

embedded/2024/10/15 18:31:25/

题目链接:139. 单词拆分 - 力扣(LeetCode)

看能不能用字符串列表里面的字符串组成这个字符串,可以反复使用

即完全背包问题,同之前的完全平方数、零钱兑换,相当于给定几个数,可以反复用,看能不能组成某个数

定义dp[i]是目标字符串中以i为结尾的子串能不能由某个字符串word组成,如果可以,问题变成dp[i-word.size()]

此处组合需要考虑顺序,target遍历外层循环 

class Solution {
public:bool wordBreak(string s, vector<string> &wordDict) {vector<bool> dp(s.size() + 1);dp[0] = true;for (int i = 1; i <= s.size(); ++i)for (auto &word: wordDict) {int n = word.size();if (i - n >= 0 && s.substr(i - n, n) == word)dp[i] = dp[i] || dp[i - n];}return dp[s.size()];}
};


http://www.ppmy.cn/embedded/8709.html

相关文章

git 简单使用

git 简单使用 git 安装git 使用1. 从git仓库克隆项目2. git checout -b 创建新分支(1) git checkout 切换分支(2) git checkout 切换提交(3) git checkout 清空当前工作区修改 3. git status 查看当前分支的状态4. git diff 查看修改的具体内容5. git add 添加更改6. git resto…

RAID10如何创建?RAID10做法详细说明

RAID10创建步骤主要有7步&#xff1a;1.硬件准备&#xff1b;2.配置RAID卡或存储设备&#xff1b;3.选择RAID级别&#xff1b;4.添加硬盘到RAID 10组&#xff1b;5.添加硬盘到RAID 10组&#xff1b;6.保存并退出配置&#xff1b;7. 初始化RAID 10阵列。 RAID 10&#xff0c;也…

测试大语言模型在嵌入式设备部署的可能性——模型TinyLlama-1.1B-Chat-v1.0

测试模型TinyLlama-1.1B-Chat-v1.0修改推理参数&#xff0c;观察参数变化与推理时间变化之间的关系。 本地环境&#xff1a; 处理器 Intel Core™ i5-8400 CPU 2.80GHz 2.80 GHz 机带 RAM 16.0 GB (15.9 GB 可用) 集显 Intel UHD Graphics 630 独显 NVIDIA GeForce GTX 1050 主…

大数据平台搭建2024(二)

二&#xff1a;Hive安装 只在node01上操作 1 安装MySQL 8.0 最小化安装需要安装这个 yum install -y wget1-1 下载MySQL的yum源 wget http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm检查是否安装成功 rpm -qpl mysql80-community-release-el7-7.n…

【NLP练习】调用Gensim库训练Word2Vec模型

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、准备工作 1.安装Gensim库 使用pip安装&#xff1a; !pip install gensim2. 对原始语料分词 选择《人民的民义》的小说原文作为语料&#xff0c;先采用…

【网络通信基础】网络中的常见基本概念

目录 一、IP地址 二、端口号 三、协议 四、五元组 五、协议分层 1. OSI 模型 2. TCP/CP五层&#xff08;或四层&#xff09;模型 3. 网络设备所在分层 六、封装和分用 封装&#xff08;Encapsulation&#xff09; 分用&#xff08;Multiplexing&#xff09; 一、IP…

hbase基础(三)

HBase第三天 HBase的读流程 客户端拿到一个rowkey&#xff08;首先得要知道这个rowkey存在哪个region中&#xff09;根据zk获取hbase:meta表&#xff0c;这个表中存放了region的信息&#xff0c;根据namespace、表名&#xff0c;就可以根据rowkey查看是否匹配某个region的sta…

大数据------额外插件及技术------Git(完整知识点汇总)

Git 定义 它是分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;如&#xff1a;Java类、xml文件、html页面等&#xff09;&#xff0c;在软件开发过程中被广泛应用 作用 代码回溯&#xff1a;快速回到某一代码历史版本版本切换&#xff1a;同一个…