小白学Java
Java后端
·04-23 23:44
Day 97 ✅ 今天做了: 1. 力扣32,最长有效括号 2. 复习java八股 ⏰ 明天计划: 1. 复习springboot 2. 刷力扣题 📚 今日感悟: 力扣32,最长有效括号 1. 思路1:利用栈,记录最后一个不能参与匹配的位置,这样合法长度就可以通过i-栈顶来计算。如果遇到'(',直接入栈;否则弹出一个栈顶元素用于匹配,然后判断栈是否为空,如果不为空,计算i-栈顶元素并更新最大值;如果栈为空,把这个位置当做新的无效边界入栈 `时间复杂度O(n),空间复杂度O(n)` 2. 思路2:使用两个变量记录当前左括号和右括号的数量,正序遍历,当左=右时,计算当前括号长度,左<右时,重置左右都为0;但对于(()这种情况就没法判断了,所以在倒序来一遍,左>右时,左右重置为0 `时间复杂度O(n),空间复杂度O(1)`
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP