编程之美

本文介绍了一个针对微软亚洲研究院内部论坛Tango的发帖者统计算法。该算法能够快速找出发帖数量超过总帖子数1/4的前三大发帖者ID。通过遍历帖子列表并使用特定的计数技巧,有效地识别这些活跃用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:
Tango是微软亚洲研究院的一个试验项目。研究院的员工和实习生们都很喜欢在Tango上面交流灌水。统计结果表明,有3个发帖很多的ID,他们的发帖数目都超过了帖子总数目N的1/4。如果你有一个当前论坛上所有帖子(包括回帖)的列表,其中帖子作者的ID也在表中,你能从发帖ID列表中快速找出他们的ID吗?

#include<stdio.h>
void find(int *p,int N,int q[3])
{
    int i,j,k,t;
    int  n_times[3]={0,0,0};
    q[0]=q[1]=q[2]=-1;
    for(i=0;i<N;i++)
    {
        for(j=0;j<3;j++)
            if(p[i]==q[j])
            {
                n_times[j]++;
                break;
            }
        if(j==3)
        {
            for(k=0;k<3;k++)
            {
                if(n_times[k]==0)
                {
                    q[k]=p[i];
                    n_times[k]=1;
                    break;
                }
            }
            if(k==3)
            {
                for(t=0;t<3;t++)
                    n_times[t]--;
            }
        }   
    }
    for(i=0;i<3;i++)
        printf("%d ",n_times[i]);
}

void main()
{
    int a[12]={1,6,6,5,5,7,2,2,5,8,6,2},b[3];
    find(a,12,b);
    for(int i=0;i<3;i++)
        printf("%d ",b[i]);

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值