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

【Hot 100 刷题计划】 LeetCode 139. 单词拆分 | C++ 动态规划 (完全背包思维)

LeetCode 139. 单词拆分 题目描述题目级别中等给你一个字符串s和一个字符串列表wordDict作为字典。如果可以利用字典中出现的一个或多个单词拼接出s则返回true。注意不要求字典中出现的单词全部都使用并且字典中的单词可以重复使用。示例 1:输入:s leetcode,wordDict [leet, code]输出:true解释: 返回true因为leetcode可以由leet和code拼接成。示例 2:输入:s applepenapple,wordDict [apple, pen]输出:true解释: 返回true因为applepenapple可以由apple pen apple拼接成。注意你可以重复使用字典中的单词。 破题思路动态规划 / 完全背包模型这道题可以看作是一个特殊的完全背包问题背包总容量字符串的长度n。物品字典wordDict中的单词。物品重量单词的长度。使用限制每个单词可以无限制重复使用。但与普通背包不同的是字符串的拼接是有严格顺序要求的。因此我们在两层循环的遍历顺序上必须是外层遍历背包容量字符串前缀长度内层遍历物品字典中的单词。状态定义定义dp[i]为字符串s的前i个字符即长度为i的前缀能否利用字典中的单词拼接而成。状态转移方程对于当前长度为i的前缀我们遍历字典中的每一个单词wordDict[j]。如果当前前缀的长度i大于等于单词长度sz并且以i结尾的子串刚好和这个单词匹配s.substr(i - sz, sz) wordDict[j]那么当前长度i能否拼成就取决于**“刨去这个单词后剩下的前置长度i - sz能否拼成”**。dp[i] dp[i] || dp[i - sz]初始化dp[0] 1或true。代表长度为 0 的空字符串是可以被拼成的不需要任何单词。这是整个 DP 状态接力传递的起跑点 C 代码实现 (完全保留作者原版)classSolution{public:boolwordBreak(string s,vectorstringwordDict){intns.size(),mwordDict.size();// 开辟 DP 数组长度为 n 10 防止越界intdp[n10];// 初始化全部为 0 (false)memset(dp,0,sizeofdp);// 边界条件长度为 0 的前缀默认拼写成功作为接力的起点dp[0]1;// 外层循环遍历背包容量即字符串前缀的长度 ifor(inti0;in;i){// 内层循环遍历物品即字典中的所有单词for(intj0;jwordDict.size();j){intszwordDict[j].size();// 状态转移的前提当前前缀长度足够容纳该单词且尾部子串与单词完全匹配if(iszs.substr(i-sz,sz)wordDict[j]){// 只要找到一种合法的拆分方式dp[i] 就置为 1 (true)dp[i]dp[i]||dp[i-sz];}}}// 返回整个字符串长度 n 是否能被拼接成功returndp[n];}};

相关文章:

【Hot 100 刷题计划】 LeetCode 139. 单词拆分 | C++ 动态规划 (完全背包思维)

LeetCode 139. 单词拆分 📌 题目描述 题目级别:中等 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字典中出现的单词全部都使用,并且字典中的…...

5分钟学会:用安卓手机制作启动盘的终极指南

5分钟学会:用安卓手机制作启动盘的终极指南 【免费下载链接】EtchDroid An application to write OS images to USB drives, on Android, no root required. 项目地址: https://gitcode.com/gh_mirrors/et/EtchDroid 当你的电脑系统崩溃无法启动,…...

QZoneExport终极指南:如何完整备份QQ空间数据并永久保存

QZoneExport终极指南:如何完整备份QQ空间数据并永久保存 【免费下载链接】QZoneExport QQ空间导出助手,用于备份QQ空间的说说、日志、私密日记、相册、视频、留言板、QQ好友、收藏夹、分享、最近访客为文件,便于迁移与保存 项目地址: https…...

GraphGPT部署与优化:解决20秒延迟问题的终极方案

GraphGPT部署与优化:解决20秒延迟问题的终极方案 【免费下载链接】GraphGPT Extrapolating knowledge graphs from unstructured text using GPT-3 🕵️‍♂️ 项目地址: https://gitcode.com/gh_mirrors/gr/GraphGPT GraphGPT是一款利用GPT-3从非…...

【Hot 100 刷题计划】 LeetCode 79. 单词搜索 | C++ 标准方向数组 DFS 与回溯

LeetCode 79. 单词搜索 📌 题目描述 题目级别:中等 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的…...

AI时代的算法思维:大经典排序学习啬

引言 在现代软件开发中,性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序,性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言,性能优化涉及多个层面&#x…...

函数计算 AgentRun 重磅上线知识库功能,赋能智能体更“懂”你

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

Benchmark失效时代,AIAgent真性能验证全链路方法论,从沙盒到生产环境全覆盖

第一章:AIAgent架构评估基准与测试方法 2026奇点智能技术大会(https://ml-summit.org) AI Agent 架构的评估不能仅依赖端到端任务准确率,而需系统性覆盖推理能力、工具调用鲁棒性、多步规划一致性、环境交互适应性及资源效率等维度。当前主流基准如 AGI…...

有限差分法在不可压NS方程求解中的实践与优化

1. 有限差分法解NS方程的核心思路 我第一次用有限差分法解不可压NS方程时,整个人都是懵的。教科书上那些偏微分方程符号看得头大,直到把方程拆解成具体代码才恍然大悟。其实核心思路很简单:用离散的网格点代替连续空间,把微分方程…...

Kirikiri游戏开发终极指南:5个技巧让你轻松处理视觉小说资源

Kirikiri游戏开发终极指南:5个技巧让你轻松处理视觉小说资源 【免费下载链接】KirikiriTools Tools for the Kirikiri visual novel engine 项目地址: https://gitcode.com/gh_mirrors/ki/KirikiriTools 如果你正在处理Kirikiri引擎的视觉小说游戏资源&#…...

2026医生AI+数字生活调研报告

医脉通2026年医生AI数字生活调研报告基于3038份覆盖24个临床科室的问卷,展现出医学数字化迈入精耕细作新阶段,AI已成为医生日常工作的核心基础设施。关注公众号:【互联互通社区】,回复【AI952】获取全部报告内容。AI医学应用实现从…...

把 SAP Enterprise Search 的安全边界真正收紧,别只盯着搜索框

很多团队做 Enterprise Search,上线前会把精力放在连接器、索引、搜索模型、Fiori 搜索入口这些看得见的地方,等到真正进生产,问题却常常出在另一个层面,谁能搜、能搜到多少、跨系统怎么传、日志里留下了什么、底层 HANA 的数据有没有被妥善保护。SAP 官方文档对这件事的态…...

LLaMA-Factory实战:基于Qwen2.5-VL-7B-Instruct的印章识别微调指南

1. 环境准备与基础配置 在开始微调Qwen2.5-VL-7B-Instruct模型之前,我们需要搭建好开发环境。这里推荐使用Docker容器来保证环境的一致性,避免因为系统差异导致的问题。我实测过在Ubuntu 20.04和22.04系统上都能稳定运行,下面分享具体配置步骤…...

BallonTranslator:免费开源的一键漫画翻译神器

BallonTranslator:免费开源的一键漫画翻译神器 【免费下载链接】BallonsTranslator 深度学习辅助漫画翻译工具, 支持一键机翻和简单的图像/文本编辑 | Yet another computer-aided comic/manga translation tool powered by deeplearning 项目地址: https://gitco…...

Boost库中的int128_t:高精度计算的实战指南

1. 为什么需要int128_t? 在C开发中,我们经常会遇到需要处理超大整数的情况。比如金融领域的金额计算、密码学中的大数运算、科学计算中的精确模拟等场景。传统的64位整数(long long)最大只能表示2^63-1(约9.210^18&am…...

别再傻傻分不清了!一文搞懂以太网PHY芯片与MAC之间的MII、RGMII、SGMII接口怎么选

以太网PHY与MAC接口选型指南:从MII到SGMII的工程实践 在嵌入式网络设备设计中,PHY芯片与MAC控制器之间的接口选择往往成为硬件工程师的第一个决策难点。面对MII、RMII、GMII、RGMII、SGMII等多种接口标准,不同的引脚数量、时钟方案和布线要求…...

FontCenter:AutoCAD智能字体管理解决方案的技术实现与架构解析

FontCenter:AutoCAD智能字体管理解决方案的技术实现与架构解析 【免费下载链接】FontCenter AutoCAD自动管理字体插件 项目地址: https://gitcode.com/gh_mirrors/fo/FontCenter 在CAD设计领域,字体缺失问题一直是困扰工程师和设计师的技术痛点。…...

Midscene.js:零代码跨平台UI自动化的终极指南 - 让AI成为你的智能操作员

Midscene.js:零代码跨平台UI自动化的终极指南 - 让AI成为你的智能操作员 【免费下载链接】midscene AI-powered, vision-driven UI automation for every platform. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene 你是否厌倦了每天重复点击、…...

dl-librescore用户脚本完全指南:在浏览器中一键下载乐谱

dl-librescore用户脚本完全指南:在浏览器中一键下载乐谱 【免费下载链接】dl-librescore Download sheet music 项目地址: https://gitcode.com/gh_mirrors/dl/dl-librescore dl-librescore是一款强大的用户脚本工具,专为音乐爱好者设计&#xff…...

Qwen3-4B开箱即用体验:无需复杂配置,直接开启对话

Qwen3-4B开箱即用体验:无需复杂配置,直接开启对话 1. 为什么选择Qwen3-4B Instruct-2507 在众多开源大语言模型中,Qwen3-4B Instruct-2507以其独特的轻量化设计和专注纯文本处理的能力脱颖而出。这个由阿里通义千问团队开发的40亿参数模型&am…...

GPUStack 在华为昇腾 I A 服务器上的保姆级部署指南首

开发个什么Skill呢? 通过 Skill,我们可以将某些能力进行模块化封装,从而实现特定的工作流编排、专家领域知识沉淀以及各类工具的集成。 这里我打算来一次“套娃式”的实践:创建一个用于自动生成 Skill 的 Skill,一是用…...

mPLUG-Owl3-2B多模态工具:数据结构优化实战

mPLUG-Owl3-2B多模态工具:数据结构优化实战 1. 为什么需要优化数据结构 当你开始用mPLUG-Owl3-2B处理真实项目时,可能会遇到这样的情况:加载大量图片时程序变慢,处理视频时内存占用飙升,或者检索特定内容时需要等待很…...

Jenkins 学习总结投

先唠两句:参数就像餐厅点单 把API想象成一家餐厅的“后厨系统”。 ? 路径参数/dishes/{dish_id} -> 好比你要点“宫保鸡丁”这道具体的菜,它是菜单(资源路径)的一部分。查询参数/dishes?spicytrue&typeSichuan -> 好比…...

网盘下载慢?试试 OpenSpeedy!100 倍加su

OpenSpeedy是一款进程加速的软件,介绍这款软件其实是让大家提高某网盘的下载速度,但是其实他不仅提高下载速度,还可以加速任何软件。 软件是绿色版,打开以后,选择某个进程,然后把变速速率调到100倍即可。 然…...

Navicat For MySQL 高效使用与合法授权指南

1. 为什么选择正版Navicat for MySQL? 作为一款老牌的数据库管理工具,Navicat for MySQL确实让很多开发者爱不释手。我第一次接触它是在2013年,当时就被它直观的界面和强大的功能惊艳到了。但很多人可能不知道,使用破解版软件就像…...

用STM32F407的FSMC总线给FPGA当外挂RAM?一个实战项目带你打通软硬件

STM32与FPGA的FSMC总线实战:打造高性能异构内存扩展方案 在嵌入式系统开发中,内存资源常常成为性能瓶颈。当STM32需要处理大规模数据时,内部SRAM可能捉襟见肘。本文将展示如何利用STM32F407的FSMC总线,将FPGA内部RAM无缝扩展为MCU…...

终极指南:如何用Flurl优雅处理.NET HTTP请求与响应事件

终极指南:如何用Flurl优雅处理.NET HTTP请求与响应事件 【免费下载链接】Flurl Fluent URL builder and testable HTTP client for .NET 项目地址: https://gitcode.com/gh_mirrors/fl/Flurl Flurl是一款功能强大的.NET库,它提供了流畅的URL构建器…...

九宫格输入法的算法解析:如何用C语言处理多次按键的字符选择

九宫格输入法的算法解析:如何用C语言处理多次按键的字符选择 在移动设备尚未普及触屏键盘的年代,九宫格输入法曾是手机文字输入的主流方式。即便在今天,仍有大量用户偏爱这种高效的输入方式。本文将深入探讨九宫格输入法的核心算法逻辑&#…...

HoRain云--ASP核心:Global.asa文件详解

🎬 HoRain云小助手:个人主页 🔥 个人专栏: 《Linux 系列教程》《c语言教程》 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!…...

用Python的正态分布模拟一个生活场景:产品质量检验与评分分布预测

用Python模拟零件质量检验:正态分布在工业场景的实战应用 去年接手某汽车零部件供应商的质量优化项目时,生产线主管抛给我一个具体问题:"我们每天抽检200个轴承直径,但合格率波动很大,能否用数据预测次品风险&…...