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

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

分享到微博請遵守國家法律
丹阳市| 赤城县| 施甸县| 安图县| 西平县| 涪陵区| 萨迦县| 子长县| 格尔木市| 祁门县| 甘德县| 台南市| 松潘县| 惠安县| 小金县| 林西县| 石柱| 体育| 沁水县| 铜山县| 青岛市| 同德县| 大关县| 衡南县| 德阳市| 当阳市| 巴彦淖尔市| 衡阳市| 济阳县| 松滋市| 澄江县| 涞水县| 淮北市| 武鸣县| 江油市| 新源县| 阿鲁科尔沁旗| 永吉县| 威远县| 贵定县| 马尔康县|