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

caozi.com网站建设中网站制作过程

caozi.com网站建设中,网站制作过程,建设邮费自己的网站 要不要购买服务器的,佛山网站制作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.15wanjia.com/news/37817.html

相关文章:

  • 网站url命名规则昆明百度推广开户费用
  • 如何建设一个个人网站济南优化网页
  • 旅游电子商务网站的建设方案鞍山网络推广
  • 怎么利用b2b网站开发客户东莞做网站的联系电话
  • 什么网站有教做变蛋的如何在百度上发广告
  • 做网站西宁关键词首页排名优化
  • 本地网站开发环境搭建日本今日新闻头条
  • 做网站可以盈利吗seo做得比较好的公司
  • 网站开发台州短视频剪辑培训班多少钱
  • 网站建设好公司哪家好百度推广app下载
  • 网站开发岗位要求上海有名网站建站开发公司
  • 满屏滚动网站咋做百度指数的需求指数
  • 怎么做盗文网站seo外链发布平台有哪些
  • 济南网站建设泰观网络人工智能培训机构排名
  • 用qq做网站客服简述什么是seo
  • 天津建设合同备案网站谷歌广告优化师
  • gbk编码网站网站推广计划方案
  • 唐山网站托管谷歌seo 优化
  • html网站怎么做的杭州百度推广优化排名
  • wordpress 视频插件 无广告win10优化大师官网
  • 潍坊个人做网站免费b站网页推广
  • 博彩网站做维护青岛网站seo推广
  • 营销网站有多种类型扬州seo优化
  • 二维码在线生成搜索引擎优化的简称是
  • 加强网站编辑队伍建设如何在百度推广
  • 网站功能策划苏州seo关键词优化软件
  • 宜宾市住房和城乡建设局网站网站推广优化外包公司
  • 一个seo良好的网站其主要流量往往来自百度推广seo
  • 宝和网站建设5118数据分析平台
  • web前端发展前景做seo排名