最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ù)字符 | 滑動窗口題型的評論 (共 條)

分享到微博請遵守國家法律
花莲市| 汉寿县| 东海县| 永吉县| 桂阳县| 饶阳县| 抚顺市| 伊通| 和平区| 军事| 新龙县| 扎囊县| 建阳市| 宜阳县| 六枝特区| 南城县| 田阳县| 富裕县| 鹰潭市| 平阳县| 林口县| 南皮县| 神木县| 谢通门县| 宣汉县| 临安市| 江阴市| 五原县| 邵武市| 曲周县| 驻马店市| 嘉峪关市| 石阡县| 三都| 邹城市| 望奎县| 怀柔区| 贡觉县| 泊头市| 潜江市| 古丈县|