Leetcode 76最小覆盖串 滑动窗口问题

    技术2024-01-17  101

     

    这是典型的滑动窗口,建议用两个Hash表,如果想优化,后期可以优化成一个,但两个Hash表不容易出错。是否已经包含,(不需要遍历一遍Hash表,这里有一个技巧,就是用一个count。滑动窗口始终维护住成立即可)

    class Solution { public: string minWindow(string s, string t) { unordered_map<char,int> hs,ht; for(auto c:t) ht[c]++; string res; int count = 0, len = s.size()+1; for(int i=0,j=0;j<s.size();j++){ if(hs[s[j]]<ht[s[j]]) count++; hs[s[j]]++; while(hs[s[i]]>ht[s[i]]) hs[s[i++]]--; if(count==t.size()&&j-i+1<len){ len = j-i + 1; res = s.substr(i,j-i+1); } } return res; } };

     

     

     

    Processed: 0.008, SQL: 9