ToB企服应用市场:ToB评测及商务社交产业平台

标题: 【滑动窗口最值】滑动窗口的最值的一种方案 [打印本页]

作者: 没腿的鸟    时间: 2024-2-20 12:04
标题: 【滑动窗口最值】滑动窗口的最值的一种方案
  假设现在有数组a[n],和滑动的窗口长度为k >n>>k;    vector mn;    vector mx,a(n);    priority_queue p,q;    priority_queue p1,q1;    for(int i = 0; i < n; i++){        cin>>a;    }        for(int i = 0; i < k; i++){        p.push(a);        p1.push(a);    }    mx.push_back(p.top());    mn.push_back(p1.top());    for(int i = k; i < n; i++){        q.push(a[i - k]);        q1.push(a[i - k]);        if(p.size() && q.size()){            while(p.top() == q.top()){                p.pop();                q.pop();                if(p.empty() || q.empty()) break;            }        }        if(p1.size() && q1.size()){            while(p1.top() == q1.top()){                p1.pop();                q1.pop();                if(p1.empty() || q1.empty()) break;            }        }        p.push(a);        p1.push(a);        mx.push_back(p.top());        mn.push_back(p1.top());            }    int len = mx.size();    for(int i = 0; i < len; i++){        cout




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4