eli和字符串(二分搜索)
Posted miraculousb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了eli和字符串(二分搜索)相关的知识,希望对你有一定的参考价值。
#include <bits/stdc++.h> using namespace std; int n,k; char str[200005]; int a[300]; int maxsum=0;char zm=0; void return_maxsum_zm(int &maxsum,char &zm) { for(int i=‘a‘;i!=‘z‘+1;i++) { if(maxsum<a[i]) { maxsum=a[i]; zm=i; } } } bool jugde(int mid){ memset(a,0,sizeof(a)); maxsum=0;zm=0; for(int i=0;i<mid;i++) { a[str[i]]+=1; } int left=0,right=mid-1; return_maxsum_zm(maxsum,zm); //printf("%d-%c ",maxsum,zm); while(right<=n) { a[str[left]]--; left++; right++; a[str[right]]++; //printf("%d ",right); return_maxsum_zm(maxsum,zm); //printf("%d-%c ",maxsum,zm); if(maxsum>=k){ //printf("%d,ture ",mid); return true; } } //printf("%d,false ",mid); return false; } int main(){ while(~scanf("%d %d",&n,&k)){ getchar(); scanf("%s",str); int l=k; int r=n; int ans=-1; while(l<=r){ int mid=(l+r)/2; if(jugde(mid)){ //printf("%d--%d--%d ",l,mid,r); ans=mid; r=mid-1; } else{ l=mid+1; } } printf("%d ",ans); } return 0; }
以上是关于eli和字符串(二分搜索)的主要内容,如果未能解决你的问题,请参考以下文章
我可以有一个用于引用和指针的 ELI5 以及何时使用它们吗?
ELI5 explain_weights 和 explain_predictions 作为 pandas DataFrame