23| 画展

代码实现

cpp 复制代码
const int N = 1e6 + 10;
int n, m; 
int a[N], mp[N], kind, cost, ret;

int main()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++) cin >> a[i];
	int l = 1, r = 1;
	cost = n, ret = 1;
	while(r <= n)
	{
		// 进窗口
		mp[a[r]]++;
		if (mp[a[r]] == 1) kind++;
		
		while(kind == m)
		{
			// 更新结果
			int tmp = r - l + 1; 
			if (tmp < cost)
			{
				ret = l;
				cost = tmp;
			}
			// 出窗口
			mp[a[l]]--;
			if(mp[a[l]] == 0) kind--;
			l++;
		 } 
		 
		 r++;
	}
	cout << ret << " " << ret + cost -1 << endl;
	return 0;
}
相关推荐
Swift社区6 分钟前
LeetCode 401 二进制手表 - Swift 题解
算法·leetcode·swift
Darkwanderor8 分钟前
搜索优化——启发式搜索和A*算法
c++·算法·启发式搜索·a星搜索
知识分享小能手8 分钟前
MongoDB入门学习教程,从入门到精通,MongoDB 副本集管理完全指南(13)
数据库·学习·mongodb
Master_oid13 分钟前
机器学习37:K邻近算法(K Nearest Neighbor,KNN)
人工智能·算法·机器学习
耶叶14 分钟前
BIT-TPS:关于实验4数学库完善与设计重构的详细解读
c++·bit·旋风
猹叉叉(学习版)14 分钟前
【系统分析师_知识点整理】 14.系统运行与维护
运维·笔记·软考·系统分析师
Hello--_--World15 分钟前
VUE3:基础篇官网笔记
前端·vue.js·笔记
承渊政道21 分钟前
【优选算法】(实战突破字符串:经典题型与解题模板)
c语言·数据结构·c++·笔记·学习·算法·容器
笑鸿的学习笔记22 分钟前
git笔记之git commit --amend三种常用写法的简洁区别对比
笔记·git
STLearner22 分钟前
WWW 2026 | 时间序列(Time Series)论文总结(预测,生成,插补,分类,异常检测等)
论文阅读·人工智能·深度学习·神经网络·算法·机器学习·数据挖掘