滑动窗口套路以及例题

主要解决求最长不重复子串问题

在这里插入图片描述
题解:

#include<bits/stdc++.h>

using namespace std;

int main()
{
	int z, l = 0, r = 0, sum = 0;
	vector<int> vi;
	cin >> z;
	set<int> si;
	while (z--)
	{
		int c;
		cin >> c;
		vi.push_back(c);
	}
	while (l < vi.size() && r < vi.size())
	{
		if (si.find(vi[r]) == si.end())
		{
			si.insert(vi[r++]);
			sum = max(sum, r - l);
		}
		else si.erase(vi[l++]);
	}
	cout << sum;
}
发布了181 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43461641/article/details/105455399