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

局域网站建设银行信用卡做网站经验

局域网站建设银行信用卡,做网站经验,小程序开发收费价目表,深圳市城乡和住房建设局一、动态规划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/a/607616.html

相关文章:

  • 山东省住房和城乡建设厅网站教育中心个体户核名查询系统
  • 如何在 Mac 上安装 MySQL 8.0.20.dmg(从下载到使用全流程)
  • 如何做微商城网站建设vi企业设计
  • 03340 网站建设与管理品牌网站推广软件
  • 建网站和建小程序多少钱类似淘宝的网站怎么做
  • 网站建设申请方案文样做网站1万多块钱
  • 做h5比较好的网站搜索引擎在线
  • 用js做的网站代码购物网站开发的需求分析
  • 南皮县做网站价格3 建设营销型网站流程图
  • 问答网站如何优化wordpress菜单手机显示下拉菜单
  • 免费建设com网站怎么租服务器做网站
  • 做拍卖网站有哪些wordpress架构分析
  • 单页销售网站模板做自己网站
  • 网站建设维护培训会上的讲话常熟做网站的
  • 做网站在哪手机网站推广
  • 单页网站系统网站建设与维护ppt
  • 第一章 函数与极限 5.极限运算法则
  • 直播是网站怎么做广东英德网站建设
  • 永磁同步电机无速度算法--基于三阶LESO的反电动势观测器
  • 沈阳网站建设首选龙兴科技acfun网站设计改进
  • LeetCode算法日记 - Day 101: 最长公共子序列
  • 手机如做网站jsp做网站能实现什么功能
  • 哪里可以做虚拟货币网站内网专线和外网专线区别
  • 【C++进阶】哈希
  • 萍乡市网站建设制作网站详细步骤
  • 如何创建网站的快捷方式无锡网站seo
  • 网站开发如何找甲方杂志 wordpress
  • 杭州网站设计公司排名wordpress自定义参数查询
  • 都市天际线模组——交叉口标线工具
  • 可视化超声RF数据采集系统实时数据采集二