《编程之美》: 寻找发帖水王的扩展问题 2.3

来源:互联网 发布:淘宝金牌卖家怎么开通 编辑:程序博客网 时间:2024/05/22 17:10

这个问题的解决办法类似于1个发贴水王的问题,可以同时删除四个不相同的ID,直到找不到四个不相同的为止,余下的三个即为三个水王,通守维护三个结构体完成

struct Person{    IDType ID;    int count;}

通过遍历一遍即可得到最终结果,消除四个不同的ID实现为,比较每个一个ID,和当前的三个结构体比较,若ID和某个相等且其count>0,那么其count++,若三个ID中某个count为0,置这个ID为查询的ID,count++,若和三个均不相等,表示 三个ID的count均>0,刚三个ID的count--;循环完成。代码如下:

Person person[3];        foreach(IDType id in IDs)        {            for(int i=0;i<3;i++)            {                if(person[i].count==0)                {                    person[i].ID=id;                    person[i].count++;                    break;                }                if(person[i].ID==id)                {                    person[i].count++;                    break;                }            }            for(int i=0;i<3;i++)                person[i].count--;        }


遍历完成后结果中就是三个水王的iD

原创粉丝点击