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

提供秦皇岛网站建设seo外包公司兴田德润官方地址

提供秦皇岛网站建设,seo外包公司兴田德润官方地址,做类似美团的网站吗,免费seo搜索优化一、动态规划DP 回文子串问题 1、回文子串 647 dp数组如果采用一维的,很难进行推导。采用二维,一开始的想法是dp[i][j]表示s[i]~s[j]之间回文子串的个数,这样发现在推导递推公式时遇到困难,例如在s[i]s[j]时,不知道s…

一、动态规划DP 回文子串问题

1、回文子串 647

dp数组如果采用一维的,很难进行推导。采用二维,一开始的想法是dp[i][j]表示s[i]~s[j]之间回文子串的个数,这样发现在推导递推公式时遇到困难,例如在s[i]==s[j]时,不知道s[i+1:j-1]是否是回文子串。所以这样的定义不合理,所以让dp[i][j]表示s[i:j]是否是回文子串就好。
这样递推公式就好推导,当s[i]==s[j],如果j-i<=2,则dp[i][j] = 1,否则dp[i][j] = dp[i+1][j-1];当s[i]!=s[j],dp[i][j] = 0。再在循环里累加这个dp[i][j]就是所有的回文子串数量。
另外,关于遍历顺序需要提一下,递推公式dp[i][j] = dp[i+1][j-1],则需要提前知道dp[i+1][j-1],所以i应该是逆序,j正序。

class Solution {
public:int countSubstrings(string s) {int n = s.size();vector<vector<int>> dp(n, vector<int>(n, 0));int ans = 0;for(int i=n-1; i>=0; --i){for(int j=i; j<n; ++j){if(s[i] == s[j] && (j-i<=2 || dp[i+1][j-1])){dp[i][j] = 1;++ans;}}}return ans;}
};

这题更优的解法是采用双指针,能把空间复杂度优化到O(1)。有一个元素为中心点和两个元素为中心点两种情况

class Solution {int extend(const string &s, int i, int j){int ans = 0;while(i>=0 && j<s.size() && s[i--]==s[j++])++ans;return ans;}
public:int countSubstrings(string s) {int ans = 0;for(int i=0; i<s.size(); ++i){ans += extend(s, i, i);ans += extend(s, i, i+1);}return ans;}
};

2、最长回文子序列 516

这题和上一题很相似,只不过由回文子串变成回文子序列。代码如下:

class Solution {
public:int longestPalindromeSubseq(string s) {int n = s.size();vector<vector<int>> dp(n, vector<int>(n));for(int i=0; i<n; ++i)dp[i][i] = 1;for(int i=n-2; i>=0; --i){for(int j=i+1; j<n; ++j){if(s[i]==s[j] && (dp[i+1][j-1] || j-i==1)){dp[i][j] = 2 + dp[i+1][j-1];}else{dp[i][j] = max(dp[i+1][j], dp[i][j-1]);}}}return dp[0][n-1];}
};

二、写在后面

回文子串采用二维dp数组比较好理解,比较经典的转移关系是 d p [ i ] [ j ] = d p [ i + 1 ] [ j − 1 ] dp[i][j] = dp[i+1][j-1] dp[i][j]=dp[i+1][j1]相似的形式,i逆序遍历,j正序遍历$。

http://www.dtcms.com/wzjs/428181.html

相关文章:

  • 峨眉住房和城乡建设委员会网站获客渠道有哪些
  • 网站开发和网站维护有区别吗武汉网站维护公司
  • 如何用文档创建一个网站个人网络销售平台
  • 什么网站的易用性百度技术培训中心
  • 前端接单平台seo网络贸易网站推广
  • 顺的网络做网站好不好北京谷歌优化
  • 百度网盟推广步骤谷歌seo是什么职业
  • 福州城乡建设委员会网站在线生成网页网站
  • 大学做网站seo全网推广营销软件
  • 金山区网站制作品牌营销策略包括哪些内容
  • 滨海做网站公司湛江百度网站快速排名
  • phpcms如何发布网站百度推广开户渠道公司
  • 电商运营怎么学seo和sem哪个工资高
  • 西安网站建设工程无安全警告的浏览器
  • 阿里云怎么做静态网站平台怎么推广技巧
  • 布吉附近公司做网站建设多少钱磁力蜘蛛搜索引擎
  • 网站建设设置分享功能内部优化
  • 建筑施工特种证书查询入口官网免费推广seo
  • 山西人工智能建站系统软件搜狗网址大全
  • 网站建设宣传海报百度竞价推广投放
  • 零下一度网站建设黑帽seo寄生虫
  • 网站建设与维护的案例seo整站优化
  • 济南建设网站哪里好学企业管理培训班
  • 公司集团网站建设新闻发布会稿件
  • 网站建设七大步骤深圳市seo上词多少钱
  • 做网站前景怎么样网站推广如何收费
  • 马云做直销网站吗百度竞价推广技巧
  • 做六级真题的网站seo推广专员工作好做吗
  • 网站建设案例哪家好seo是什么平台
  • 广东像一起做网店的网站长沙网站搭建优化