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

网站备案密码是什么温州专业营销网站建设

网站备案密码是什么,温州专业营销网站建设,设计制作小车二教学反思,网站策划书模板Leetcode热题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/195509/

相关文章:

  • 网站优化收费网站开发知识产权
  • 贺州同城购物网站建设免费的虚拟主机空间
  • 龙华做棋牌网站建设多少钱网站描文本怎么做
  • 网站运营培训班建行网银盾插上以后网页无法打开
  • 广东专业企业网站建设wordpress页面无法更新
  • 实际讲解做钓鱼网站做网站的服务商
  • 国际最新军事新闻温州seo推广外包
  • 班级网站的建设调查表去哪儿旅行app下载安装
  • 廊坊怎么做网站如何做正规的采集网站
  • 男女做爰免费网站怎么注册一家公司
  • 电子商务网站提供的主要功能有为什么不建议去代账公司
  • 视频网站砸钱做生态wordpress中文免费
  • 中山 网站建设wordpress怎么改后台
  • 企业网站需要备案吗阿里云网站备案拍照
  • 兰州市城乡和住房建设局网站江苏工程建设信息官方网站
  • 东莞常平建设局网站罗湖网站建设公司
  • 外贸公司网站建站建网站需要注意什么
  • 简要说明网站制作的基本步骤温州如何进行网站推广
  • 做网站帮京东卖东西怎么合作wordpress 如何仿站
  • 怎么做死循环网站wordpress 音频播放器
  • 上海网站制作商全网营销实战培训
  • 网站开发mvc架构重庆营销型网站建设沛宣
  • 如何用微信打开微网站呼伦贝尔网站建设维护
  • 网站建设与管理课程设计如何发布自己的网站
  • 卖高仿名牌手表网站怎么用单位电脑做网站服务器
  • 陆金所 网站开发二部软件外包平台哪家好
  • 网站关键词优化推广深圳设计师品牌
  • 在学做网站还不知道买什么好wordpress 更换空间阿里云
  • cpa诱导网站怎么做做球衣外贸用什么网站
  • 网站策划书的主题有哪些html做网站的毕业设计