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

网站开发者工作描述周口seo 网站

网站开发者工作描述,周口seo 网站,wordpress漂浮花瓣,仿团购网站模板文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题可以看做一个动态规划问题。其中,字符串s是背包,而字典中的单词就是物品。…

文章目录

  • 一、题目
  • 二、解法
  • 三、完整代码

所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。

一、题目

在这里插入图片描述

二、解法

  思路分析:本题可以看做一个动态规划问题。其中,字符串s是背包,而字典中的单词就是物品。题目问的是单词能否组成字符串s,就是问物品能不能把背包装满。字典中的单词可以重复使用,因此是一个完全背包问题。

  • 第一步, d p [ j ] dp[j] dp[j]的含义。 d p [ j ] dp[j] dp[j]代表的是字符串长度为 j j j时,该能否由字典中的单词构成。如果能,则为true。
  • 第二步,递推公式。如果确定 d p [ j ] dp[j] dp[j]是true,且 [ j , i ] [j, i] [j,i]这个区间的子串出现在字典里,那么 d p [ i ] dp[i] dp[i]一定是true。 ( j < i ) (j < i ) (j<i)。所以递推公式是:
    if(dp[j] &&  [j, i]这个区间的子串出现在字典里) dp[i] = true
    
  • 第三部,元素初始化。 d p [ 0 ] dp[0] dp[0]初始化为1。
  • 第四部,递归顺序。本题严格划分起来是一个排列问题。以s = “applepenapple”, wordDict = [“apple”, “pen”] 为例。我们要求 物品的组合一定是 “apple” + “pen” + “apple” 才能组成 “applepenapple”。“apple” + “apple” + “pen” 或者 “pen” + “apple” + “apple” 是不可以的,那么我们就是强调物品之间顺序。所以说,本题一定是先遍历背包,再遍历物品
  • 第五步,打印结果。
      为了判断 [ j , i ] [j, i] [j,i]这个区间的子串出现在字典里,我们构建了一个无序集合。其底层实现是一个哈希表,可以在常数时间内( O ( 1 ) O(1) O(1))内进行查找。
      程序如下
class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(), wordDict.end());vector<bool> dp(s.size() + 1, 0);dp[0] = 1;for (int i = 1; i <= s.size(); i++) {	// 遍历背包(字符串s)for (int j = 0; j < i; j++) {		// 遍历物品(单词)string key = s.substr(j, i - j);if (dp[j] && wordSet.find(key) != wordSet.end()) {dp[i] = 1;}}}return dp[s.size()];}
};

复杂度分析:

  • 时间复杂度: O ( n 3 ) O(n^3) O(n3)。除了两层循环以外,还有需要substr返回子串,它是O(n)的复杂度(这里的n是substring的长度)。
  • 空间复杂度: O ( n ) O(n) O(n)

三、完整代码

# include <iostream>
# include <vector>
# include <string>
# include <unordered_set>
using namespace std;class Solution {
public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(), wordDict.end());vector<bool> dp(s.size() + 1, 0);dp[0] = 1;for (int i = 1; i <= s.size(); i++) {	// 遍历背包(字符串s)for (int j = 0; j < i; j++) {		// 遍历物品(单词)string key = s.substr(j, i - j);if (dp[j] && wordSet.find(key) != wordSet.end()) {dp[i] = 1;}}}return dp[s.size()];}
};int main() {string s = "catsandog";vector<string> wordDict = { "cats", "dog", "sand", "and", "cat" };Solution s1;bool result = s1.wordBreak(s, wordDict);cout << result << endl;system("pause");return 0;
}

end

http://www.yayakq.cn/news/106041/

相关文章:

  • 嘉兴百度网站推广建设公关型的企业网站有哪些
  • 做网站公司怎么找客户wordpress主题 cosy
  • 个人建立网站要多少钱网站建设需要注意的问题
  • 某服装企业网站建设方案百度关键词指数排行
  • 网站工信部备案流程外贸企业的网站建设
  • 北京智能网站建设哪里有邢台柏乡县建设局网站
  • 解析软件的网站网站商城服务体系建设方案
  • 如何建wap网站网站平台建设什么意思
  • 招商加盟网站模板程序建企业版网站多久
  • 汕头网站制作公司官方网站建设的目标
  • 怎么注册网站的步骤营销型网站能解决什么问题
  • 网站忧化技巧798艺术区
  • 备案网站多长时间wordpress 标签 图片不显示
  • 主机 建设网站自己做网站的优势
  • 帮助人做ppt的网站外国人学做中国菜 网站
  • 做网站切图的原则是什么足球比赛直播在线观看
  • 郑州二七区网站建设精准扶贫建设网站的目的
  • 无障碍浏览网站怎么做网络推广发帖网站
  • 有哪些门户网站六安城市网地址在哪里
  • 天津建设网站哪家好wordpress手机模板怎么用
  • 老徐蜂了网站策划书网站设计需要在哪方面提升
  • 南京做网站优化多少钱wordpress同学录
  • 电商网站开发主要设计内容营销型网站深度网
  • 宁波网站推广制作公司首页官网
  • 济宁住房和城乡建设厅网站首页自己家里做网站网速慢
  • 食品销售公司网站制作wordpress 主题 激活
  • jsp 响应式网站模板下载合肥生态丽景网站建设
  • 做网站要会哪些技术关于校园网站的策划书
  • 贵州移动端网站建设富阳区住房和城乡建设局网站
  • 想做网站的公司好杭州小程序建设公司