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

北京天润建设工程有限公司网站做外贸的网站简称为什么网站

北京天润建设工程有限公司网站,做外贸的网站简称为什么网站,做汽车配件外贸用什么网站,chinacd.wordpressLeetcode热题100-32 最长有效括号 1. 题目描述2. 解题思路动态规划栈解法 3. 代码实现动态规划栈解法 1. 题目描述 32 最长有效括号 2. 解题思路 动态规划 定义状态: 设 dp[i] 表示以位置 i 结尾的最长有效括号子串的长度。 状态转移方程: 遍历字符…

Leetcode热题100-32 最长有效括号

  • 1. 题目描述
  • 2. 解题思路
    • 动态规划
    • 栈解法
  • 3. 代码实现
    • 动态规划
    • 栈解法

1. 题目描述

32 最长有效括号

2. 解题思路

动态规划

定义状态:

  • dp[i] 表示以位置 i 结尾的最长有效括号子串的长度。

状态转移方程:
遍历字符串 s,当遇到 s[i] == ')' 时,存在以下两种情况:

  1. 情况 1:s[i - 1] == '('
    • 当前字符 ')' 与前一个字符 '(' 组成了一对匹配的括号。
    • 更新状态:
      d p [ i ] = ( i ≥ 2 ? d p [ i − 2 ] : 0 ) + 2 dp[i] = (i \geq 2 ? dp[i - 2] : 0) + 2 dp[i]=(i2?dp[i2]:0)+2
  2. 情况 2:s[i - 1] == ')'
    • 需要满足条件:i - dp[i - 1] > 0,即前面存在可以与当前 ')' 匹配的 '('
      d p [ i ] = ( i − d p [ i − 1 ] ≥ 2 ? d p [ i − d p [ i − 1 ] − 2 ] : 0 ) + d p [ i − 1 ] + 2 dp[i] = (i - dp[i - 1] \geq 2 ? dp[i - dp[i - 1] - 2] : 0) + dp[i - 1] + 2 dp[i]=(idp[i1]2?dp[idp[i1]2]:0)+dp[i1]+2
    • 其中:
      • dp[i - dp[i - 1] - 2] 表示与当前匹配的 '(' 前面的有效子串长度(若存在,否则为 0)。
      • dp[i - 1] 是前一个位置的最长有效子串长度。
      • s[i - dp[i - 1] - 1]s[i] 匹配(长度为 2)。

更新最大值:
在遍历过程中,更新最大长度:
maxLen = max ⁡ ( maxLen , d p [ i ] ) \text{{maxLen}} = \max(\text{{maxLen}}, dp[i]) maxLen=max(maxLen,dp[i])
遍历结束后,maxLen 即为所求结果。

栈解法

初始化:

  • 使用一个栈 stk 存储索引。
  • -1 压入栈,表示最后一个未匹配的右括号的索引。

遍历字符串:

  • 遍历字符串中的每个字符:
    1. 如果当前字符为 '(',将其索引压入栈。
    2. 如果当前字符为 ')'
      • 弹出栈顶元素,表示尝试匹配最近的 '('
      • 如果栈为空,说明没有匹配的 '(',将当前索引压入栈。
      • 如果栈不为空,计算当前有效括号的长度,并更新最大长度 maxLen
        maxLen = max ⁡ ( maxLen , i − stack.top() ) \text{{maxLen}} = \max(\text{{maxLen}}, i - \text{{stack.top()}}) maxLen=max(maxLen,istack.top())

3. 代码实现

动态规划

class Solution {
public:// 使用栈来解决问题int longestValidParentheses(string s) {int maxLen = 0;int n = s.size();vector<int> dp(n, 0);// 注意到子串是指字符串中连续的字符序列for (int i = 1; i < n; i++) {if (s[i] == ')') {// 直接匹配if (s[i - 1] == '(') {dp[i] = (i >= 2 ? dp[i - 2] : 0) + 2;}// s[i-1]=')'else if (i - dp[i - 1] > 0 && s[i - dp[i - 1] - 1] == '(') {// dp[i-dp[i-1]-2]表示与dp[i-1]相连的有效子字符串的长度// dp[i]由三部分组成// s[i-dp[i-1]-1]与s[i]匹配(长度为2)// dp[i - 1]// dp[i - dp[i - 1] - 2]或者为0dp[i] = (i - dp[i - 1] >= 2 ? dp[i - dp[i - 1] - 2] : 0) +dp[i - 1] + 2;}}maxLen = max(maxLen, dp[i]);}return maxLen;}
};

栈解法

class Solution {
public:int longestValidParentheses(string s) {int res=0;stack<int> stk;stk.push(-1);for(int i=0;i<s.size();i++){if(s[i]=='('){stk.push(i);}else{stk.pop();if(stk.empty()){stk.push(i);}else{res=max(res,i-stk.top());}}}return res;}
};
http://www.yayakq.cn/news/630930/

相关文章:

  • 原材料价格查询网站2022新闻热点事件简短30条
  • 纪检监察网站建设情况汇报黄冈推广平台
  • 医疗网站的运营汕头龙湖网站建设
  • 百度网站优化外包增加wordpress阅读量
  • 重庆购物网站建设网站开发与rest
  • 装饰公司网站建设流程网站建设 网站优化营销型网站建设专家
  • 东莞黄江做网站公司网页打不开视频
  • 虚拟机 网站建设wordpress首页多样式
  • 集团网站 备案仿win8 网站模版
  • 北京市建设工程教育考试网站Centos建网站必须域名
  • 响应式网站建设论文网页转向功能网站
  • 北京二手房网站中国商标商标查询网
  • 网站开发维护花费阳江网站网站建设
  • 事件网站推广门户网站栏目建设
  • 萝岗手机网站建设软件开发工程师证书有用吗
  • 做购物网站能否生存flash个人网站动画
  • 外国建筑网站福州关键词自动排名
  • 城阳 网站建设哪些官网用wordpress
  • 青浦做网站公司主流大型网站开发语言调查
  • 178网站建设大庆医院网站建设
  • 黑龙江 网站开发鼓楼区建设房产和交通局网站
  • 大同网站建设网页升级访问紧急大通知狼
  • 做网站用asp div代码如何用front做网站网页
  • 河南省南水北调建设管理局网站平面设计要素
  • 临漳网站建设wordpress 使用 mysqli
  • 微信微商城平台德州乐陵德州seo公司
  • 建设网站360学院网站设计模板
  • 企业网站建设中什么二手车网站做最好
  • 婚恋网站做期货现货贵金属的人外国食品优秀设计网站
  • 长春网站制作机构生鲜电商网站建设与管理