存储坐标不行,这道需要O(N)的复杂度吧
2023-09-14 13:06:18
发布于:河南
0阅读
0回复
0点赞
存储坐标也不行TLE了
#include <iostream>
using namespace std;
int a[550005],b[550005];
int k,sum,tot,pop,qoq,lol;string s;char a1,a2;
int main() {
cin>>k>>s>>a1>>a2;int len=s.size();
pop=-1,tot=0;
do{
pop=s.find(a1,pop+1);
a[tot++]=pop;
}while(pop!=-1);
qoq=-1;lol=0;
do{
qoq=s.find(a2,qoq+1);
b[lol++]=qoq;
}while(qoq!=-1);
for(int i=0;i<tot-1;i++)
for(int j=lol-2;j>=0;j--)
{
if(b[j]-a[i]+1>=k)
sum++;
else
break;
}
cout<<sum;
return 0;
}
全部评论 1
这题可以用nlogn的时间复杂度
2023-09-23 来自 广东
0我写了,过了样例,也没有TLE,全WA了
2023-09-23 来自 河南
0可以用的,只是你的代码可能还是n2的时间复杂度,测试得到能用nlogn的时间复杂度
2023-09-30 来自 广东
0
有帮助,赞一个