news 2026/6/22 18:50:49

关于动态规划【力扣139.单词拆分的思考】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关于动态规划【力扣139.单词拆分的思考】

1、可以逆向思考题目问题

题目:如果可以利用字典中出现的一个或多个单词拼接出s则返回true。字典中的单词可以重复使用。

逆向思考转化题目意思:字符串s是否能由字典中的单词组成。字符串s相当于背包,字典中的单词相当于物品。问是否能装满背包,可以无限次取物品

2、因为字符串非空,所以j从1开始

3、递推公式里面的dp[i] == true用来表示当前位置的前面字符串可由字典里的单词组成

4、物品(字典里的每个的单词)的长度不会超过书包(字符串)的长度,比如假设书包是app,单词是apple,物品最多遍历到app,如果再继续遍历单词,毫无意义,因为app肯定不能由apple组成。所以遍历单词的时候,位置遍历到背包容量的最大就可以了。

5、递推公式:如果当前被截取的字符串是字典里的单词,并且前面的字符串都可由字典里的单词组成,则说明整个字符串都可由字典里的单词组成。

6、当前状态依赖于前一个状态的问题,就像动态规划。拼接出s,s就像背包;字典里的单词可以重复使用,就像完全背包。所以推出整道题是动态规划的完全背包应用问题。

(本题就是dp[i]的状态依赖于dp[j]的状态。比如如果当前j = 3,i = 3,在字典里找到了单词,dp[0] = true,就可以推出dp[j] = true,也就是dp[3] = true;下一轮循环,假设循环到了j = 4,i = 3,截取字符串从3开始,长度为4-3=1,这个长度为1的单词出现在了字典里,同时dp[i]此时是dp[3],在上一轮循环中已经推出dp[3] = true,所以这一轮循环推出dp[j] = ture,也就是dp[4] = true;接下来继续向后循环,直到推出dp[s.size()]的状态)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 18:42:35

Scout集合站:企业级AI数据协作的可审计基础设施

1. 项目概述:这不是又一个AI工具箱,而是一套可审计、可追溯、可落地的数据协作基础设施“企业级 Scout 落地”这个标题里,“Scout”不是指某个具体开源项目或商业产品代号,而是对一类新型AI基础设施的统称——它像侦察兵&#xff…

作者头像 李华
网站建设 2026/6/22 18:39:42

ragas官方文档中文版(二十六)

评估一个简单的 RAG 系统 在本教程中,我们将编写一个简单的评估管道来评估 RAG(检索增强生成,Retrieval-Augmented Generation)系统。本教程结束时,您将学会如何使用评估驱动开发(evaluation-driven develo…

作者头像 李华
网站建设 2026/6/22 18:36:27

Windows10Debloater:3分钟彻底清理Windows预装软件的开源神器

Windows10Debloater:3分钟彻底清理Windows预装软件的开源神器 【免费下载链接】Windows10Debloater Script to remove Windows 10 bloatware. 项目地址: https://gitcode.com/gh_mirrors/wi/Windows10Debloater 你是否曾为新电脑开机后,发现桌面和…

作者头像 李华
网站建设 2026/6/22 18:33:11

终极SQLite数据库编辑器:在VSCode中像Excel一样编辑SQLite数据库

终极SQLite数据库编辑器:在VSCode中像Excel一样编辑SQLite数据库 【免费下载链接】sqlite3-editor 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite3-editor 还在为管理SQLite数据库而烦恼吗?每次都要打开独立的数据库客户端,编…

作者头像 李华
网站建设 2026/6/22 18:30:52

解锁三大核心功能:让你的鸣潮游戏体验更流畅智能

解锁三大核心功能:让你的鸣潮游戏体验更流畅智能 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 你是否曾因《鸣潮》游戏画面卡顿而错过精彩战斗瞬间?是否在多账号切换时感到繁琐不…

作者头像 李华