日韩性视频-久久久蜜桃-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最长有效括号(困难)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 在线观看的网站 | 欧美特黄一区二区三区 | 久久久免费毛片 | 538精品在线视频 | av黄在线观看 | 国产熟女高潮视频 | 外国黄色网址 | 国产成人无码久久久精品天美传媒 | 日韩成人av在线播放 | 成人高清| 国产女主播一区二区三区 | 成年女人免费视频 | 精品久久久久久无码中文野结衣 | 久久性av | 日本www高清视频 | 在线不卡欧美 | 亚洲六月丁香色婷婷综合久久 | 久久新网址 | 国产高潮国产高潮久久久 | 四虎8848精品成人免费网站 | 国产剧情在线一区 | 亚洲精品小视频 | 国产强被迫伦姧在线观看无码 | 999视频在线播放 | 香蕉久久精品日日躁夜夜躁 | 成人国产毛片 | 99re伊人| 国产二级一片内射视频播放 | 精品国产乱 | 欧美成人aaa片一区国产精品 | 中文字幕一区二区久久人妻 | 一区二区欧美在线观看 | 欧美亚洲三级 | 亚洲国产日韩在线一区 | 欧美色图久久 | 中日韩黄色大片 | 精品麻豆一区二区 | 九色视频偷拍少妇的秘密 | 女人天堂网 | 国产精品69久久久久 | 中文字幕日韩亚洲 | 91麻豆视频网站 | 熟妇人妻无乱码中文字幕真矢织江 | 少妇媚药按摩中文字幕 | 黄色污网站在线观看 | 暖暖免费观看日本版 | 2024国产精品视频 | 伊人色综合网 | 在线免费中文字幕 | 国产色视频 | 在线观看免费国产视频 | 国产又粗又猛又黄又爽无遮挡 | 人妻少妇被猛烈进入中文字幕 | 男生插女生的网站 | 亚洲91色 | 欧美亚一区二区三区 | 午夜看片在线观看 | 91avcom | 先锋av资源网站 | 视频在线观看一区二区三区 | 天天操人人射 | jizzjizz欧美69巨大 | 91国在线啪 | 日韩av成人在线 | 国产女主播在线 | 91色| 成人国产一区 | 免费黄色网址在线 | 少妇丰满尤物大尺度写真 | 成人黄色激情网 | 在线看污片 | 播放男人添女人下边视频 | 天天操妹子 | 五月天色视频 | 91啪在线观看 | 中文字幕一区二区三区四区 | 尤物精品在线 | 欧美色视频在线观看 | av天天干 | 搡国产老太xxx网站 高h喷汁呻吟3p | 日韩欧美自拍偷拍 | 99er这里只有精品 | 亚洲视频自拍 | 福利小视频在线观看 | 成年人免费看 | 天天综合网永久 | www.一起操 | 亚洲国产一区二区a毛片 | 日韩精品999 | 日韩一级免费观看 | 成人污网站 | chinese xxxx videos andvr| 美女88av| 国产污视频在线播放 | 欧美在线www | 蜜桃传媒一区二区亚洲av | 男男野外做爰全过程69 | 久久久一二三区 | 舌奴调教日记 |