日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 32最长有效括号(困难)

發布時間:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 32最长有效括号(困难) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

維護不易,還請點個贊贊,如果想加入還請關注公眾號bigsai回復進群加入打卡。

題目描述

給定一個只包含 ‘(’ 和 ‘)’ 的字符串,找出最長的包含有效括號的子串的長度。

示例 1:

輸入: “(()”
輸出: 2
解釋: 最長有效括號子串為 “()”

示例 2:

輸入: “)()())”
輸出: 4
解釋: 最長有效括號子串為 “()()”

分析
再看這題之前,咱們回顧一下前面刷過的題。力扣20有效的括號

分析

這種題核心思想就是使用棧模擬。本題的話更簡單一點因為只有(和 )兩種括號,只有兩個東西的話很多時候可以省略很多內容。在使用暴力的時候就可以循環每次找到最長的有效括號。而括號匹配的時候可以直接終止的情況是當前多個)右括號。例如())(到第三個不可能和前面相連,而如果來(只需要期待后面能夠來)。一個)可以和一個(組成一對,消除棧中的一個(。

當然,在具體的實現上,我們用數組模擬棧,實現代碼為:

public int longestValidParentheses(String s) {char str[]=s.toCharArray();//字符數組int max=0;for(int i=0;i<str.length-1;i++){int index=-1;if(max>=str.length-i)break;for(int j=i;j<str.length;j++){if(str[j]=='(')index++;else {if(index<0){i=j;break;}else {index--;}}if(index==-1&&(j-i+1>max)){max=j-i+1;}}} return max;}

盡管有一些地方有優化空間,比如剪枝把各種不可能的給剪掉,但整個算法還是太復雜,算法的復雜度為O(n2).并且只擊敗5%的人,所以在這方面宣告算法宣告失敗:

其實這個暴力是昨晚睡覺前過的, 因為我看到困難級別我在刷的時候用暴力過了好歹我也是過了,過了之后上床之后我就在想怎么去優化這道題。

在今天早上的時候用筆畫了畫想了想成功攻破該題(看不懂不要緊,下面給你慢慢講):

如何將這道題從一個O(n2)的時間復雜度優化到O(n)?很容易, 我們需要注意他的過程。我們先隨便看幾個可能的最大情況。

  • ( ) ) ( ) ( ( ) ( ) ) 最大為后面部分
  • ( ) ( ) ( ( ( ) 最大為前面部分
  • ( ( ( ( ( ( ) ( ) ( ) ( ) 最大為后面部分

對于這么一次獲取你會發現不同括號會有些區別:
(:左括號一旦出現那么他就期待一個)進行匹配,但它的后面可能有)并且在這中間有很多其他括號對。
):右擴號有兩種情況:

  • 一種是當前已經超過左括號前面已經不可能連續了。例如( ) ) ( )第三個括號出現已經使得整個串串不可能連續,最大要么在其左面要么再其右面。 你可以理解其為一種清零初始機制。
  • 另一種情況)就是目標棧中存在(可與其進行匹配。匹配之后要疊加到消除后平級的數量上,并且判斷是否是最大值。(下面會解釋)

具體實現的思路上,就是使用一個int數組標記當前層級(棧深)有正確的括號數量。 模擬一次棧行為從左向右,遇到)太多(當前棧中不存在(進行匹配)就將數據清零重新開始。這樣一直到最后。你可以把它看成臺接,遇到(就上一個臺階并清零該新臺階,遇到)就下一個臺階并且把數量加到下降后的臺階上。具體可以看下面圖片模擬呃過程:
( ) ( ( ) ( ) ( ( ) ) )

仔細看看這張圖,具體實現代碼為:

public static int longestValidParentheses(String s) {int max=0; int value[]=new int[s.length()+1];int index=0;for(int i=0;i<s.length();i++){if(s.charAt(i)=='('){index++;value[index]=0;}else {//")"if(index==0){value[0]=0;}else {value[index-1]+=value[index--]+2;//疊加if(value[index]>max)//更新max=value[index];}}}return max;}


好啦,這個O(n)的復雜度還行,至于其他解法也沒研究有空可以看看。這次打卡就結束啦,如果有興趣的歡迎關注公眾號bigsai 回復進群,加入打卡!一起刷題。

總結

以上是生活随笔為你收集整理的LeetCode 32最长有效括号(困难)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩天堂一区 | 女人喂男人奶水做爰视频 | 阿v免费在线观看 | 撕开少妇裙子猛然进入 | 中文字幕一区二区三区在线播放 | 在线免费观看一区二区三区 | 后进极品美女圆润翘臀 | 国产一区二区福利 | 色呦呦中文字幕 | 国产日韩欧美在线观看视频 | 欧美成人日韩 | 亚洲色图另类 | 91av福利视频 | 噼里啪啦国语电影 | 少妇2做爰hd韩国电影 | 韩国主播青草200vip视频 | av电影在线不卡 | 欧美日日骚 | 91微拍 | 夜夜嗨国产 | 少妇免费直播 | 美女又爽又黄 | 中文字幕日韩欧美 | 极品少妇网站 | 欧美一级一区二区三区 | 岛国av一区二区 | 肉丝肉足丝袜一区二区三区 | 激情久久久久 | 中文字幕在线观看免费视频 | 99色播| 黑森林av| 日韩在线视频一区二区三区 | 国产123| 亚洲精品2区 | 操人在线观看 | 男男全肉变态重口高h | 前任攻略在线观看免费完整版 | 欧美精品人妻一区二区 | 国产精品99久久久久久一二区 | 一本大道综合伊人精品热热 | 九色自拍| 91午夜影院 | 亚洲一区中文字幕 | 19韩国主播青草vip | 日本爽妇网 | 国产美女福利在线 | 久久在线免费观看视频 | 色综合激情网 | 97黄色网 | 精品人妻一区二区三区四区五区 | 日韩高清不卡在线 | 国产人妻一区二区 | 欧洲在线观看 | 国产一区在线观看免费 | 日本一区二区视频在线 | 日本夜夜操 | 日韩午夜激情电影 | 六月色婷婷 | 国产亚洲一区二区在线 | 五月天在线播放 | 亚洲乱码国产乱码精品精的特点 | 日本激情网 | 日韩在线观看网站 | 国产男女猛烈无遮挡 | 国产精品一区免费观看 | 丝袜人妖 | 住在隔壁的她动漫免费观看全集下载 | 韩国美女主播跳舞 | 性猛交xxxx乱大交孕妇2十 | 中文字幕乱码一二三区 | 中文字幕无码精品亚洲35 | 国产在线视频福利 | 欧美精品aa | 黄色片上床 | 黑人巨大精品人妻一区二区 | 国产中文字幕精品 | 精品人妻一区二区三区久久嗨 | 精品伦一区二区三区 | 欧美成人动态图 | 激情第四色 | 欧美一级免费在线 | 精品自拍一区 | 国产高清久久久 | 精品国产伦一区二区三区免费 | 秋霞影院午夜丰满少妇在线视频 | 边添小泬边狠狠躁视频 | 国产精品第1页 | www.av在线视频 | 不卡欧美| 国产免费内射又粗又爽密桃视频 | av片免费播放| 九九精品在线观看 | 亚欧成人精品一区二区 | 欧美在线二区 | 九九久久精品视频 | 国产一二区在线观看 | a√在线观看 | 男人午夜免费视频 | 亚洲av综合色区无码一二三区 |