#9WA求解
查看原帖
#9WA求解
1371837
YWQ0224楼主2024/12/7 10:17

用的就是滑动窗口喵...滑跪 蒟蒻求大佬指点

#include<bits/stdc++.h>
#include<deque>
using namespace std;
int a[1000010];
int main() {
	int n,k;
	deque<int> q;
	cin>>n>>k;
	for (int i=1; i<=n; i++) {
		cin>>a[i];
	}
	for (int i=1; i<=n; i++) {
		while(!q.empty()&&q.back()>=a[i]) {
			q.pop_back();
		}
		q.push_back(a[i]);
		if(!q.empty()&&q.front()==a[i-k]) {
			q.pop_front();
		}
		if(!q.empty()&&(i>=k||i==n)) {
			cout<<q.front()<<' ';
		}
	}
	cout<<endl;
	q.clear();
	for (int i=1; i<=n; i++) {
		while(!q.empty()&&q.back()<=a[i]) {
			q.pop_back();
		}
		q.push_back(a[i]);
		if(!q.empty()&&q.front()==a[i-k]) {
			q.pop_front();
		}
		if(!q.empty()&&(i>=k||i==n)) {
			cout<<q.front()<<' ';
		}
	}

	return 0;
}
2024/12/7 10:17
加载中...