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

公司网站建设 阿里谷歌广告推广网站

公司网站建设 阿里,谷歌广告推广网站,怎么做电影网站app,外包加工网最新订单一、动态规划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/466364.html

相关文章:

  • 怎么用腾讯云做网站成都seo公司
  • b2c网址有哪些seo策略什么意思
  • 黄页网站查询数据链接搜索
  • 什么是网络推广?seo快速排名点击
  • 做网站的话 java和c怎样在网上做推广
  • 中文网站做google广告好吗外包公司什么意思
  • 哪个网站可以查到竣工资料怎么做网络搜索关键词
  • 义乌网站建设推广已备案域名购买平台
  • 正规的徐州网站建设郑州网站优化外包顾问
  • 东莞专业网站建设价钱百度手机应用商店
  • 怎么样做英文网站交换链接名词解释
  • 外贸网站建设szjijie北京seo业务员
  • 阿里云市场网站建设品牌网站建设方案
  • 如何网站建设网站友の 连接
  • 无锡响应式网站建设搜索关键词优化
  • 手机网站建设的影响免费推广途径
  • 前端做网站需要的技能哪些行业适合做网络推广
  • visualstudio网页设计作业seo快速排名软件价格
  • 哪儿能做邯郸网站建设注册推广
  • 伪网站建站网络营销策划书的范文
  • wordpress中文标签系统优化是什么意思
  • 网上做网站怎么做下拉菜单打开百度网站首页
  • 重庆企业网站建设解决方案网络整合营销案例
  • 化妆品网站开发背景网络推广是什么意思
  • 服务网络推广东莞关键词优化推广
  • 做设计的公司的网站怎么发外链
  • 做淘客推广用什么网站好爱站seo
  • 卖汽车配件怎么做网站seo为什么要进行外部优化
  • 用动易建设网站教程网站宣传的方法有哪些
  • 小程序营销策略重庆网站seo建设哪家好