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

信阳网站建设信阳南昌网站建设方案开发

信阳网站建设信阳,南昌网站建设方案开发,做网站需要用什么系统,辽宁建设信息网站day46139.单词拆分1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp[i]139.单词拆分 题目链接 解题思路:单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包装满。…

day46

      • 139.单词拆分
        • 1.确定dp数组以及下标的含义
        • 2.确定递推公式
        • 3.dp数组如何初始化
        • 4.确定遍历顺序
        • 5.举例推导dp[i]

139.单词拆分

题目链接
解题思路:单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包装满。

拆分时可以重复使用字典中的单词,说明就是一个完全背包!

动规五部曲分析如下:

1.确定dp数组以及下标的含义

dp[i] : 字符串长度为i的话,dp[i]为true,表示可以拆分为一个或多个在字典中出现的单词。

2.确定递推公式

如果确定dp[j] 是true,且 [j, i] 这个区间的子串出现在字典里,那么dp[i]一定是true。(j < i )。

所以递推公式是 if([j, i] 这个区间的子串出现在字典里 && dp[j]是true) 那么 dp[i] = true

3.dp数组如何初始化

从递推公式中可以看出,dp[i] 的状态依靠 dp[j]是否为true,那么dp[0]就是递推的根基,dp[0]一定要为true,否则递推下去后面都都是false了。

那么dp[0]有没有意义呢?

dp[0]表示如果字符串为空的话,说明出现在字典里。

但题目中说了“给定一个非空字符串 s” 所以测试数据中不会出现i为0的情况,那么dp[0]初始为true完全就是为了推导公式。

下标非0的dp[i]初始化为false,只要没有被覆盖说明都是不可拆分为一个或多个在字典中出现的单词。

4.确定遍历顺序

题目中说是拆分为一个或多个在字典中出现的单词,所以这是完全背包。

还要讨论两层for循环的前后顺序。

如果求组合数就是外层for循环遍历物品,内层for遍历背包。

如果求排列数就是外层for遍历背包,内层for循环遍历物品。

做一个总结:

而本题其实我们求的是排列数,为什么呢。 拿 s = “applepenapple”, wordDict = [“apple”, “pen”] 举例。

“apple”, “pen” 是物品,那么我们要求 物品的组合一定是 “apple” + “pen” + “apple” 才能组成 “applepenapple”。

“apple” + “apple” + “pen” 或者 “pen” + “apple” + “apple” 是不可以的,那么我们就是强调物品之间顺序。

所以说,本题一定是 先遍历 背包,再遍历物品。

5.举例推导dp[i]

以输入: s = “leetcode”, wordDict = [“leet”, “code”]为例,dp状态如图:
在这里插入图片描述
dp[s.size()]就是最终结果。
动规五部曲分析完毕,C++代码如下:

class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(), wordDict.end());vector<bool> dp(s.size() + 1, false);dp[0] = true;for (int i = 1; i <= s.size(); i++) {   // 遍历背包for (int j = 0; j < i; j++) {       // 遍历物品string word = s.substr(j, i - j); //substr(起始位置,截取的个数)if (wordSet.find(word) != wordSet.end() && dp[j]) {dp[i] = true;}}}return dp[s.size()];}
};
http://www.yayakq.cn/news/577644/

相关文章:

  • 网站建设公司天成网络营销资格证网络营销证书
  • thecontent WordPress成都seo专家
  • 国外优秀设计公司网站色轮配色网站
  • 建站模板工程造价济南产品网站建设外包
  • 宿州企业网站推广深圳市seo网站设计多少钱
  • 类似58同城网站建设多少钱网站当前位置怎么做
  • 网络有限公司做女装网站的网站基本内容
  • 山东济宁网站建设空间链接制作网站
  • 免费网站建站w做网站项目收获
  • 郑州网站开发定制深圳龙华区核酸检测点
  • 兰州做网站的如何做好产品网络推广
  • 企业oa系统哪个好seo名词解释
  • 有没有专门做根雕的网站公司做网站计入那个科目
  • 山东省建设执业资格注册管理中心网站网站有几个后台
  • 中国航天建设集团有限公司网站wordpress 婚礼
  • 如何修改网站图片标识导视设计公司官网
  • 做网站后端如何接业务没有网站可以域名备案吗
  • 站酷网官网进入企业目录
  • 顺义网站开发wordpress主题汉化中文
  • 怎么查网站开发的语言wordpress 用户文章数
  • 网站建建设心的宁波网站建设开发公司
  • 网站体系优势网站请人做的 域名自己注册的 知道网站后台 怎么挂自己的服务器
  • 网站空间管理信息sem和seo是什么职业岗位
  • 南宁网站建设制作后台规划网站的思路
  • 登封网站制作网站建设建设网站ppt模板
  • 济南网站排名外包wap建站工具
  • 网站制作教程手机windows优化大师的作用
  • 购买一个网站需要多少钱网站底部工信部链接怎么做
  • 电子商务网站建设是学什么软件个人网站 如何备案
  • 专业网站优化报价海原县城乡建设局网站