当前位置: 首页 > 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;}
}

相关文章:

  • Blendshape 表情控件
  • RenderDoc 增加 DXBC to HLSL 的 shader viewer
  • docker 的 Dockerfile 简单使用
  • 分布式ID(2):雪花算法生成ID
  • GL Logger和CANFDLog-OTL-128两款记录仪都是如何实现高效的报文录制的?
  • 跟着cherno手搓游戏引擎【6】ImGui和ImGui事件
  • MyBatis 使用报错:org.xml.sax.SAXParseException 元素内容必须由格式正确的字符数据或标记组成
  • OpenHarmony 应用开发入门 (一、环境搭建及第一个Hello World)
  • 数据结构之二叉搜索树
  • 尚硅谷Nginx高级配置笔记
  • 集成开发环境(IDE)介绍
  • 【Vue3】3-2 : 组件的概念及组件的基本使用方式
  • 机器人持续学习基准LIBERO系列6——获取并显示实际深度图
  • 用Python优雅地写出数学表达式的LaTeX代码
  • c# 自定义 滑块TrackBar
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • CSS实用技巧
  • echarts的各种常用效果展示
  • gf框架之分页模块(五) - 自定义分页
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • JDK9: 集成 Jshell 和 Maven 项目.
  • nfs客户端进程变D,延伸linux的lock
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • Python打包系统简单入门
  • SOFAMosn配置模型
  • 当SetTimeout遇到了字符串
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 少走弯路,给Java 1~5 年程序员的建议
  • 算法-图和图算法
  • 学习ES6 变量的解构赋值
  • 硬币翻转问题,区间操作
  • Semaphore
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​水经微图Web1.5.0版即将上线
  • (ibm)Java 语言的 XPath API
  • (LeetCode) T14. Longest Common Prefix
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)linux下的时间函数使用
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET建议使用的大小写命名原则
  • .sh 的运行
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [ 隧道技术 ] 反弹shell的集中常见方式(二)bash反弹shell
  • []使用 Tortoise SVN 创建 Externals 外部引用目录
  • [17]JAVAEE-HTTP协议
  • [20171102]视图v$session中process字段含义
  • [Assignment] C++1