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

力扣hot100 最长有效括号 动态规划

Problem: 32. 最长有效括号
在这里插入图片描述

文章目录

  • 思路
  • Code

思路

👨‍🏫 参考题解
在这里插入图片描述

Code

⏰ 时间复杂度: O ( n ) O(n) O(n)
🌎 空间复杂度: O ( n ) O(n) O(n)

class Solution {public int longestValidParentheses(String s){int n = s.length();int[] f = new int[n];// f[i] 表示以第 i 个字符结尾的最长有效子字符串的长度int ans = 0;for (int i = 1; i < n; i++){if (s.charAt(i) == ')')// 只有右括号结尾才有效if (s.charAt(i - 1) == '(')// 上一个是 左括号{if (i < 2)f[i] = 2;elsef[i] = f[i - 2] + 2;} else // 上一个也是 右括号{if (f[i - 1] > 0) //前面已经组成有效括号对序列{int pre = i - 1 - f[i - 1]; // 此处 s[pre] 与 s[i] 是相配对的位置if (pre >= 0 && s.charAt(pre) == '(')// 存在且配对成功{f[i] = f[i - 1] + 2;// 在前边的 f[i-1] 上再加上一对if (pre - 1 > 0)//看看 pre 前边是否还有已经配对好的序列f[i] += f[pre - 1];}}}ans = Math.max(ans, f[i]);//更新答案}return ans;}
}
http://www.lryc.cn/news/284445.html

相关文章:

  • @RequestBody注解基础
  • 前端基础面试题大全
  • 第一讲_HarmonyOS应用开发环境准备
  • 一、可行性研究报告模板(软件工程)
  • DBA技术栈MongoDB:简介
  • 贪心算法 ——硬币兑换、区间调度、
  • 【已解决】namespace “Ui“没有成员 xxx
  • Spring Bean 生命周期的执行流程?
  • Android-三方框架的源码
  • AI嵌入式K210项目(15)-安全散列算法加速器
  • Docker Consul详解与部署示例
  • 内网安全管理系统(保密管理系统)
  • .NetCore Flurl.Http 4.0.0 以上管理客户端
  • openssl3.2 - 官方demo学习 - smime - smenc.c
  • 【EI会议征稿通知】第四届工业制造与结构材料国际学术会议(IMSM 2024)
  • mysql中建立一个用户,只能看到某个指定的数据库
  • 第2章 线程管理
  • 机器学习第二十六周周报 ARIMA Clustering model
  • 支持XP系统的最新firefox浏览器
  • Pytorch从零开始实战17
  • openssl3.2 - 官方demo学习 - signature - EVP_DSA_Signature_demo.c
  • vue2使用 element表格展开功能渲染子表格
  • 一个简单的ETCD GUI工具
  • vue2 使用pdf.js 实现pdf预览,并可复制文本
  • REPLACE INTO
  • idea 安装免费Ai工具 codeium
  • 关于C#中的Select与SelectMany方法
  • CentOS上安装Mellanox OFED
  • 无/自监督去噪(1)——一个变迁:N2N→N2V→HQ-SSL
  • 【24.1.19】