在线等挺急的
by lwyznoip @ 2023-09-17 21:18:41
数组开大一点
by rhq2022 @ 2023-09-17 21:22:41
@[lwyznoip](/user/186546) 您的做法会超时,建议您用单调队列、二分或贪心完成此题。
by rhq2022 @ 2023-09-17 21:32:59
可是我在练双指针....
by lwyznoip @ 2023-09-17 21:50:55
双指针似乎也可以,~~只是我没这么写~~,且双指针似乎也不是您这么做的 @[lwyznoip](/user/186546)
by rhq2022 @ 2023-09-17 21:56:58
```cpp
#include <bits/stdc++.h>
using namespace std;
long long n, m, t, ll, rr;
long long a[1000005];
long long b[1000005];
long long ans = 0x3f3f3f3f;
int main()
{
scanf ("%d%d", &n, &m);
for (int i = 1; i <= n; i ++){
scanf ("%d", &a[i]);
}
int l = 1, r = 1, k = 1;b[a[l]] ++;
while(l <= r && r <= n)
{
if(k == m)
{
if(ans > r-l+1)
{
ans = r-l+1;
ll = l; rr = r;
}
b[a[l]] --;
if(b[a[l]]==0){
k --;
}
l ++;
}
else{
r ++;
b[a[r]] ++;
if(b[a[r]]==1){
k ++;
}
}
}
cout << ll << ' ' << rr;
}
```
@[lwyznoip](/user/186546)
双指针写出来辣
by rhq2022 @ 2023-09-17 22:08:26
太感谢了
by lwyznoip @ 2023-09-17 22:12:23
已经加关注了
by lwyznoip @ 2023-09-17 22:13:51