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

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

567. 992. | 滑動窗口題型

2020-04-25 15:30 作者:有木乘舟  | 我要投稿


分析:

? 比較典型的判斷一個字符串是否是另一個字符串的子串的問題。

? 這題最直接的思路就是移動窗口,每移動一次對窗口內(nèi)的字符串進(jìn)行判斷,是否是第一個字符串的排列。

? 我們使用兩個哈希表存儲字符串s1和s2的窗口,每次只要比較兩個哈希表是否相等即可。

? 注意,題目并沒有說s1一定小于等于s2,所以我們需要有一個判斷 s1 > s2?,是的話直接返回false。

567.代碼

分析:

? 題目求的是數(shù)組中滿足不同整數(shù)為K個的連續(xù)子數(shù)組的個數(shù)。

? 可見,窗口大小為K到A.size(),最直接的解法也就是暴力解法,我們從窗口K開始,K=A.size()結(jié)束,依次遍歷整個數(shù)組,計(jì)算全部子數(shù)組是否符合條件。

? 暴力解法超時的原因大多數(shù)都是因?yàn)榇罅恐貜?fù)計(jì)算,所以我們優(yōu)化的方向就是盡可能的將重復(fù)的部分給剔除掉。

? 我們觀察發(fā)現(xiàn),如果先將right指針向右移動,然后再將left指針右移,依次對當(dāng)前窗口K里面的子數(shù)組進(jìn)行遍歷計(jì)算,會大大的減少重復(fù)計(jì)算量。

? 總結(jié)歸納為以下兩個要點(diǎn):

  • 對當(dāng)前窗口,若新加入元素后,不重復(fù)數(shù)字大于K,則縮小窗口大小,即 left++,right不變

  • 對當(dāng)前窗口,若新加入元素后,不重復(fù)數(shù)字等于K,則計(jì)算當(dāng)前窗口好子數(shù)組的數(shù)量,并在計(jì)算結(jié)束后恢復(fù)窗口數(shù)據(jù)。

? 由于我們每次都是在加入新元素后才計(jì)算,所以不會重復(fù)計(jì)算之前已經(jīng)算過的好子數(shù)組數(shù)量,這樣可以大大減少計(jì)算量,將時間復(fù)雜度降低。

? 圖解:

? 注意,我們在移動計(jì)算好子數(shù)組的時候,哈希表只是作為臨時計(jì)算用的,在計(jì)算完之后一定要恢復(fù)數(shù)據(jù)。

? ? 最后膜拜一下大神的解法:


567. 992. | 滑動窗口題型的評論 (共 條)

分享到微博請遵守國家法律
龙口市| 宜春市| 德江县| 鄯善县| 综艺| 基隆市| 新余市| 陆良县| 祁阳县| 永城市| 木里| 藁城市| 安庆市| 申扎县| 广州市| 疏附县| 静安区| 徐汇区| 襄汾县| 太原市| 安义县| 尼勒克县| 兰西县| 宽城| 景谷| 马公市| 大姚县| 页游| 龙里县| 客服| 微博| 安图县| 锦州市| 宣武区| 贵阳市| 德兴市| 闸北区| 威信县| 永德县| 靖宇县| 永川市|