0
点赞
收藏
分享

微信扫一扫

学习路上的滑动窗口

小云晓云 2022-02-13 阅读 53
算法

滑动窗口主要用来减少遍历次数,在知道所需一定范围的数据时,可通过加一减一来快速遍历。

567. Permutation in String

class Solution {
public:
    bool checkInclusion(string s1, string s2) {
        int n=s1.size();
        int t=s2.size();
        vector<int>cnt1(26);
        vector<int>cnt2(26);
        if(t<n)
        return false;
        for(int i=0;i<n;i++)
        {
            cnt1[s1[i]-'a']++;
            cnt2[s2[i]-'a']++;
        }
        if(cnt1==cnt2)//两个vector容器可直接判断是否相等
        return true;
        for(int i=n;i<t;i++)
        {
            cnt2[s2[i]-'a']++;
            cnt2[s2[i-n]-'a']--;//应用滑动窗口算法
            if(cnt1==cnt2)
            return true;
        }
        return false;
    }
};
举报

相关推荐

0 条评论