2 条题解
-
0
by hansang:
#include<bits/stdc++.h> using namespace std; const int N=1e6+10; map<int, int> mp; int a[N]; int main(){ int n, K; scanf("%d%d", &n, &K); for(int i=1; i<=n; i++) scanf("%d", &a[i]); int l=1, r=0, sum=0, ans=0; K++; while(r<n){ if(++mp[a[++r]]==1) sum++; while(sum>K){ if(--mp[a[l++]]==0) sum--; } ans=max(ans, mp[a[r]]); } printf("%d\n", ans); return 0; } -
0
by hansang:
#include<bits/stdc++.h> using namespace std; const int N=1e6+10; map<int, int> mp; int a[N]; int main(){ int n, K; scanf("%d%d", &n, &K); for(int i=1; i<=n; i++) scanf("%d", &a[i]); int l=1, r=0, sum=0, ans=0; K++; while(r<n){ if(++mp[a[++r]]==1) sum++; while(sum>K){ if(--mp[a[l++]]==0) sum--; } ans=max(ans, mp[a[r]]); } printf("%d\n", ans); return 0; }
- 1
信息
- ID
- 2620
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 7
- 已通过
- 4
- 上传者