参考:滑动窗口套路
题目76. 最小覆盖子串
1 从O(N)时间复杂度可知,暴力forfor是不可以的,O(N)一般想到hashmap。
2 子串问题一般用 动态规划,滑动窗口(双指针)
套用模板
void slidingWindow(string s, string t) {
unordered_map<char, int> need, window;
for (auto c : t) need[c]++;
int left = 0, right = 0;
int vaild = 0;
while (right < s.size()) {
char c = s[right];//c是将要移入窗口的字符
right++;//右移窗口
//窗口数据一系列更新
/*debug输出信息*/
printf("window:[%d, %d]\n", left, right);
/************/
//判断左侧窗口是否需要收缩
while (window need shrink) {
//
char d = s[left];//d是需要移除字符
left++;//窗口左移
//进行一系列更新