标签:时间 知识 solution code else https pre class love
虽然只是一道黄题,但还是学到了一点新知识——
用\(O(1)\)的内存,\(O(n)\)的时间来找出一串长度为n的数中的众数,前提是众数出现的次数要大于\(n/2\)
方法很简单:
for(int i=1;i<=n;i++){
int x; scanf("%d",&x);
if(ans==x) cnt++;
else
if(cnt==0) ans=x,cnt++;
else cnt--;
}
因为众数的数量要大于\(n/2\),所以无论再怎么散,也至少有两个众数是连着的
Luogu P2397 yyy loves Maths VI (mode)
标签:时间 知识 solution code else https pre class love
原文地址:https://www.cnblogs.com/wxl-Ezio/p/9373843.html