国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

424. 替換后的最長重復(fù)字符 | 滑動窗口題型

2020-04-21 11:28 作者:有木乘舟  | 我要投稿

分析:這題求的是重復(fù)字符的最長連續(xù)子串。我們先將題目拆解成兩個部分:

  • 當(dāng)k=0時,求重復(fù)字符的最長連續(xù)子串

  • 當(dāng)0<k<10^4時,替換窗口中k個字符,使子串保持連續(xù)重復(fù)

當(dāng)k=0時,這題可轉(zhuǎn)化為簡單的求重復(fù)字符的最長連續(xù)子串,窗口的長度就是我們需要求出來的答案。針對這一問題,我們可以將窗口問題轉(zhuǎn)化為兩個判斷依據(jù):

  • 當(dāng)右指針指向的字符與當(dāng)前窗口內(nèi)的子串字符相同時,向右擴充窗口(將右指針字符添加進窗口,窗口大小+1)

  • 否則,向右平移窗口(移除窗口最左邊字符,左指針+1,窗口大小不變)

圖片來自@migoo

? 具體的實現(xiàn)中,當(dāng)right指向的字符是非重復(fù)字符時,我們可以直接將窗口移動到當(dāng)前字符right這個位置,然后重新開始計算字符長度。

? 要注意理解,滑動窗口題型中的哈希表存儲的信息,我們知道滑動窗口的本質(zhì)是動態(tài)規(guī)劃思想,也就是使用額外的空間存儲重復(fù)的信息,利用空間換時間的方式來降低時間復(fù)雜度,因此哈希表存儲的信息十分關(guān)鍵。

? 在這個問題中,哈希表里存儲的是當(dāng)前窗口中重復(fù)字符的個數(shù)。

??當(dāng) 0<k<10^4?時,我們可以通過將窗口中的k個字符進行替換,來使窗口中的子串均為重復(fù)字符。

??因此判斷條件變成了:如果當(dāng)前窗口中出現(xiàn)次數(shù)最多的字符個數(shù)+K大于當(dāng)前子串長度,意味著子串還可以增加,因此進行窗口擴充操作(left不變,right++);反之,將窗口向右平移(left++,right++,并將left對應(yīng)的字符移除)。

? 另一和424相似的題,這一題僅僅只是把任意字符換成了 0,1數(shù)字,其他條件不變。

? 我們只需要將計算窗口中的數(shù)量最多的字符換成計算窗口中的1的數(shù)量即可。


424. 替換后的最長重復(fù)字符 | 滑動窗口題型的評論 (共 條)

分享到微博請遵守國家法律
自治县| 布拖县| 海兴县| 濉溪县| 柞水县| 普陀区| 钟山县| 石台县| 阆中市| 罗山县| 信宜市| 化州市| 铁力市| 九龙城区| 东乌| 禄劝| 玛纳斯县| 桦川县| 大英县| 华容县| 永昌县| 皋兰县| 徐水县| 涞水县| 平度市| 宁化县| 蒙阴县| 乌鲁木齐县| 天镇县| 富源县| 宜黄县| 景东| 青神县| 洪雅县| 广水市| 安仁县| 大城县| 临洮县| 博白县| 青神县| 阜宁县|