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

现在手机网站用什么做的站长工具国色天香

现在手机网站用什么做的,站长工具国色天香,wordpress调整配置出错了,如何建设下载网站首页文章目录 写在前面Tag题目来源解题思路方法一:动态规划 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行…

文章目录

  • 写在前面
  • Tag
  • 题目来源
  • 解题思路
    • 方法一:动态规划
  • 写在最后

写在前面

本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更……

专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行回顾与总结,文章结构大致如下,部分内容会有增删:

  • Tag:介绍本题牵涉到的知识点、数据结构;
  • 题目来源:贴上题目的链接,方便大家查找题目并完成练习;
  • 题目解读:复述题目(确保自己真的理解题目意思),并强调一些题目重点信息;
  • 解题思路:介绍一些解题思路,每种解题思路包括思路讲解、实现代码以及复杂度分析;
  • 知识回忆:针对今天介绍的题目中的重点内容、数据结构进行回顾总结。

Tag

【动态规划】【字符串】


题目来源

97. 交错字符串


解题思路

方法一:动态规划

首先进行特判,记字符串 s1 的长度、字符串 s2 的长度、字符串 s3 的长度分别为 mnt。如果 m + n != t,那么 s3 一定无法由 s1s2 交错组成。

定义状态

m + n = t 时,定义 f[i][j] 表示 s1 的前 i 个字符和 s2 的前 j 字符是否能交错组成 s3 的前 i+j 个字符。

转移关系

如果 s1 的第 i 个字符和 s3 的第 i+j 个字符相同,那么 s1 的前 i 个字符和 s2 的前 j 字符是否能交错组成 s3 的前 i+j 个字符 取决于 s1 的前 i-1 个字符和 s2 的前 j 字符是否能交错组成 s3 的前 i+j-1 个字符,即有:

KaTeX parse error: Expected 'EOF', got '&' at position 22: …j] = f[i-1][j] &̲ (s_1[i-1] == s…

同理,如果 s2 的第 j 个字符和 s3 的第 i+j 个字符相同,那么 s1 的前 i 个字符和 s2 的前 j 字符是否能交错组成 s3 的前 i+j 个字符 取决于 s1 的前 i 个字符和 s2 的前 j-1 字符是否能交错组成 s3 的前 i+j-1 个字符,即有:

KaTeX parse error: Expected 'EOF', got '&' at position 22: …j] = f[i][j-1] &̲ (s_2[j-1] == s…

base case

边界条件为 f[0][0] = true

最后返回

最终返回 f[m][n],表示字符串 s3 是否可以右字符串 s1s2 交错形成。

朴素实现代码

class Solution {
public:bool isInterleave(string s1, string s2, string s3) {int m = s1.size(), n = s2.size(), t = s3.size();if (m + n != t) return false;vector<vector<int>> f(m+1, vector<int>(n+1, false));f[0][0] = true; // base case 空字符串可以交错形成空字符串for (int i = 0; i <= m; ++i) {for (int j = 0; j <= n; ++j) {int p = i + j - 1;if (i > 0) {f[i][j] |= f[i-1][j] && (s1[i-1] == s3[p]);}if (j > 0) {f[i][j] |= f[i][j-1] && (s2[j-1] == s3[p]);}}}return f[m][n];}
};

使用滚动数组优化空间复杂度。 因为这里数组 f 的第 i 行只和第 i−1 行相关,所以我们可以用滚动数组优化这个动态规划,这样空间复杂度可以变成 O ( m ) O(m) O(m)

空间优化代码

class Solution {
public:bool isInterleave(string s1, string s2, string s3) {int m = s1.size(), n = s2.size(), t = s3.size();if (m + n != t) return false;vector<int> f(n+1, false);f[0] = true; // base case 空字符串可以交错形成空字符串for (int i = 0; i <= m; ++i) {for (int j = 0; j <= n; ++j) {int p = i + j - 1;if (i > 0) {f[j] &= (s1[i-1] == s3[p]);}if (j > 0) {f[j] |= f[j-1] && (s2[j-1] == s3[p]);}}}return f[n];}
};

复杂度分析

时间复杂度: O ( m n ) O(mn) O(mn) m m m 为字符串 s1 的长度, n n n 为字符串 s2 的长度。

空间复杂度:按行进行滚动数组优化后的空间复杂度为 O ( m ) O(m) O(m),朴素动态规划的时间复杂度为 O ( m n ) O(mn) O(mn)


写在最后

如果您发现文章有任何错误或者对文章有任何疑问,欢迎私信博主或者在评论区指出 💬💬💬。

如果大家有更优的时间、空间复杂度的方法,欢迎评论区交流。

最后,感谢您的阅读,如果有所收获的话可以给我点一个 👍 哦。

http://www.mnyf.cn/news/46389.html

相关文章:

  • 免费网站app源码百度网站优化工具
  • 霞浦县建设局网站湖南正规seo公司
  • 网站的种类有哪些嘉兴网站建设方案优化
  • 软环境建设办公室网站黄冈网站推广软件有哪些
  • 国内房地产设计网站建设网站客服
  • 日照住房和城乡建设厅网站nba最新比赛直播
  • 相亲网站建设关键怎么联系地推公司
  • 石家庄网站制作报价黄页引流推广网站入口
  • wordpress首页文章设置seo站长论坛
  • 小众写作网站百度推广运营
  • 中国建设银行官网站纪念币预约友情链接交换的意义是什么
  • 营销型网站建设网站建设制作网站是怎么优化的
  • 万盛网站建设公司网络营销的特点有
  • 网站建设中模站长之家ip地址归属查询
  • 网站做图标放在手机桌面电商项目策划书
  • 怎么做自己的网站免费怎么在百度上做推广
  • 网站如何为关键词做外链免费推广网站注册入口
  • 公司网站icp备案百度刷自己网站的关键词
  • 编程跟做网站html网页制作软件有哪些
  • 网站制作将栏目分类百度官网app下载安装
  • 做网站后台怎么弄seo为什么要进行外部优化
  • 重庆保安公司免费seo教程资源
  • 专业手机网站制作公司百度公司有哪些部门
  • 网站开发可退税培训网站搭建
  • 网推啥意思长春seo排名外包
  • 怎么把网站设置为信任网站济南seo网站优化
  • 树莓派可以做网站空间吗临沂网站seo
  • 集思吧网站怎么做问卷网络营销企业有哪些
  • wordpress模板制作教程下载优化大师官网入口
  • 文档里网站超链接怎么做百度权重查询工具