滑动窗口解题模板

2022-03-02  本文已影响0人  Envisage_802b

双指针的一种技巧;
维护一个窗口然后更新答案

/* 滑动窗口算法框架 */
void slidingWindow(string s, string t) {
    unordered_map<char, int> need, window;
    for (char c : t) need[c]++;
    
    int left = 0, right = 0;
    int valid = 0; 
    while (right < s.size()) {
        char c = s[right];
        right++; // 右移窗口
        
        
        ...// 进行窗口内数据的一系列更新
   
        /*** debug 输出的位置 ***/
        printf("window: [%d, %d)\n", left, right);
        /********************/
        
        
        while (window needs shrink) {// 判断左侧窗口是否要收缩
            char d = s[left];
            left++;// 左移窗口
           
            ... // 进行窗口内数据的一系列更新
        }
    }
}
上一篇下一篇

猜你喜欢

热点阅读