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

许昌网站建设汉狮套餐为什么网站打不开首页

许昌网站建设汉狮套餐,为什么网站打不开首页,wordpress首页显示文章列表,wordpress 做博客题目 时间复杂度为O(n^2)#xff0c;其中n为字符串s的长度。这是因为我们需要遍历字符串s的每个位置#xff0c;对于每个位置i#xff0c;又需要从0到i-1的位置进行遍历#xff0c;因此总的时间复杂度为O(n^2)。 空间复杂度为O(n)#xff0c;其中n为字符串s的长度。这是因…题目 时间复杂度为O(n^2)其中n为字符串s的长度。这是因为我们需要遍历字符串s的每个位置对于每个位置i又需要从0到i-1的位置进行遍历因此总的时间复杂度为O(n^2)。 空间复杂度为O(n)其中n为字符串s的长度。这是因为我们使用了一个大小为n1的dp数组来保存中间结果以及一个unordered_set来存储wordDict中的单词。因此总的空间复杂度为O(n)。 中等 相关标签 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意不要求字典中出现的单词全部都使用并且字典中的单词可以重复使用。 示例 1 输入: s leetcode, wordDict [leet, code] 输出: true 解释: 返回 true 因为 leetcode 可以由 leet 和 code 拼接成。示例 2 输入: s applepenapple, wordDict [apple, pen] 输出: true 解释: 返回 true 因为 applepenapple可以由 apple pen apple 拼接成。注意你可以重复使用字典中的单词。示例 3 输入: s catsandog, wordDict [cats, dog, sand, and, cat] 输出: false提示 1 s.length 3001 wordDict.length 10001 wordDict[i].length 20s 和 wordDict[i] 仅由小写英文字母组成wordDict 中的所有字符串 互不相同 思路和解题方法 首先我们将wordDict中的单词存储在一个unordered_set中这样可以以O(1)的时间复杂度进行单词的查找。接下来我们定义一个dp数组dp[i]表示字符串s的前i个字符能否被拆分成wordDict中的单词。我们初始化dp[0]为true表示空字符串可以被拆分。然后我们从字符串s的第一个字符开始遍历到最后一个字符。对于每个位置i我们再从0到i-1的位置遍历记为位置j。我们要判断以位置j为分割点左边子串能否被拆分并且右边子串s[j:i-1]在wordDict中存在。具体地我们检查dp[j]是否为true即前j个字符能否被拆分成wordDict中的单词。如果dp[j]为true并且子串s[j:i-1]在wordDict中存在即wordDictSet.find(s.substr(j, i - j)) ! wordDictSet.end()那么我们可以更新dp[i]为true。在内层循环中我们不断更新dp[i]的值直到找到一个满足条件的分割点j或者遍历完所有可能的分割点。最终返回dp[s.size()]即整个字符串s是否可以被拆分成wordDict中的单词的结果。 复杂度 时间复杂度: O(n^2) 时间复杂度为O(n^2)其中n为字符串s的长度。这是因为我们需要遍历字符串s的每个位置对于每个位置i又需要从0到i-1的位置进行遍历因此总的时间复杂度为O(n^2)。 空间复杂度 O(n) 空间复杂度为O(n)其中n为字符串s的长度。这是因为我们使用了一个大小为n1的dp数组来保存中间结果以及一个unordered_set来存储wordDict中的单词。因此总的空间复杂度为O(n)。 c 代码 class Solution { public:bool wordBreak(string s, vectorstring wordDict) {// 将wordDict转化为unordered_set以便快速查找auto wordDictSet unordered_setstring();for (auto word : wordDict) {wordDictSet.insert(word);}// 定义dp数组dp[i]表示s的前i个字符能否被拆分成wordDict中的单词auto dp vectorbool(s.size() 1);dp[0] true; // 初始化dp[0]为true表示空字符串可以被拆分// 遍历字符串s的每个位置判断从0到当前位置的子串能否被拆分for (int i 1; i s.size(); i) {for (int j 0; j i; j) {// 如果dp[j]为true且s[j:i-1]在wordDict中则更新dp[i]为trueif (dp[j] wordDictSet.find(s.substr(j, i - j)) ! wordDictSet.end()) {dp[i] true;break;}}}// 返回dp[s.size()]即整个字符串s是否可以被拆分成wordDict中的单词return dp[s.size()];} };Java代码 class Solution {public boolean wordBreak(String s, ListString wordDict) {// 使用HashSet来存储单词以提高查找速度HashSetString set new HashSet(wordDict);// valid数组记录s的前i个字符是否可以被拆分成单词boolean[] valid new boolean[s.length() 1];valid[0] true; // 空字符串可以被拆分for (int i 1; i s.length(); i) {for (int j 0; j i !valid[i]; j) {// 如果在j和i之间存在一个分割点使得前半部分和后半部分都可以被拆分成单词// 则将valid[i]设为trueif (set.contains(s.substring(j, i)) valid[j]) {valid[i] true;}}}return valid[s.length()];} }使用了动态规划的思想通过遍历字符串s的每个位置判断是否存在一个分割点使得前半部分和后半部分都可以被拆分成单词。时间复杂度为O(n^2)空间复杂度为O(n)。 class Solution {public boolean wordBreak(String s, ListString wordDict) {// dp数组记录s的前i个字符是否可以被拆分成单词boolean[] dp new boolean[s.length() 1];dp[0] true; // 空字符串可以被拆分for (int i 1; i s.length(); i) {for (String word : wordDict) {int len word.length();// 如果i的前len个字符可以被拆分成单词并且最后一个单词和word相等则将dp[i]设为trueif (i len dp[i - len] word.equals(s.substring(i - len, i))) {dp[i] true;break;}}}return dp[s.length()];} }使用了动态规划的思想通过遍历字符串s的每个位置判断是否存在一个分割点使得前半部分和后半部分都可以被拆分成单词。时间复杂度为O(n^2)空间复杂度为O(n)。 class Solution {private SetString set;private int[] memo;public boolean wordBreak(String s, ListString wordDict) {// memo数组用于记录从startIndex开始的子串是否可以被拆分成单词memo new int[s.length()];// 使用HashSet来存储单词以提高查找速度set new HashSet(wordDict);return backtracking(s, 0);}public boolean backtracking(String s, int startIndex) {if (startIndex s.length()) {return true; // 已经遍历到字符串末尾返回true}if (memo[startIndex] -1) {return false; // 从startIndex开始的子串已经被标记为不能匹配直接返回false}for (int i startIndex; i s.length(); i) {String sub s.substring(startIndex, i 1);if (!set.contains(sub)) {continue; // 如果拆分出来的单词不在wordDict中则继续尝试下一个分割点}boolean res backtracking(s, i 1);if (res) return true; // 如果后半部分可以被拆分则返回true}memo[startIndex] -1; // 从startIndex开始的子串无法匹配标记为-1return false;} }使用了回溯法和记忆化的思想。通过递归地尝试每个分割点判断前半部分是否可以被拆分成单词如果可以则继续递归判断后半部分。为了避免重复计算使用memo数组记录已经判断过的子串。时间复杂度取决于所有可能的分割方式最坏情况下为O(2^n)空间复杂度为O(n)。 觉得有用的话可以点点赞支持一下。 如果愿意的话关注一下。会对你有更多的帮助。 每天都会不定时更新哦  人  。
http://www.pierceye.com/news/644515/

相关文章:

  • html5 wap网站模板动画广州网站建设 信科公司
  • 西安门户网站开发wordpress如何在文章底部添加目录
  • 设计婚纱网站宁波网站优化服务
  • 建设电子商务网站的花费那些公司做网站比较厉害
  • 桂林建站平台哪家好东莞百度快速排名提升
  • 网页设计框架哈尔滨网络优化推广公司
  • 深圳专业做网站技术西安网站设计报价
  • 做电影资源网站动图制作网站
  • 网站域名免费申请深圳龙华怎么样
  • 织梦建设手机网站wordpress中portfolio
  • 网站开发的检索速度在啥范围之内设计网站大全网
  • 外国人学做中国菜的网站php购物网站开发成品
  • 手机网站专题网站建设私活
  • 自建网站 备案视频号广告推广
  • 青岛网站优化东莞市场监督管理局官网
  • 深圳珠宝网站设计临沂seo优化
  • 东莞网站建项目代理
  • 心理咨询网站开发营销型网站的建设要求都有什么
  • 优化网站要怎么做中国外协机械加工订单网
  • 运动健身型网站开发永久网站空间
  • 好的网站建设公司排名小程序怎么引流推广
  • 建设部网站 光纤到户平顶山 网站建设公司
  • 网站建设费计入哪个科目赛罕区城乡建设局网站
  • 计算机协会网站模板如何做微信下单小程序
  • 购物网站开发流程图大连装修公司
  • 网站开发定制推广杭州手表网站域名
  • 惠州网站建设方案推广企业网站必备模块
  • 网站内页产品做跳转做电商有哪些平台
  • 如何自建网站服务器wordpress下载权限
  • 重庆专业网站设计服务做染料的网站