zoukankan      html  css  js  c++  java
  • 找小水王

    寻找发帖“水王”问题的扩展:“超级水王”没有了。统计结果表明,有3个发帖很多的ID,他们的发帖数目都超过了帖子总数目N的1/4。你能从发帖ID列表中快速找出他们的ID吗?

    (一)分析问题:

    如果每次删除四个不同的ID(不管是否包含发帖数目超过总数1/4的ID),那么,在剩下的ID列表中,原先发帖比例大于1/4的ID所占比例仍然大于1/4,可以通过不断重复这个过程,把ID列表中的ID总数降低(转化为更小的问题),从而得到问题的答案

    (二)代码实现:

    package 找水王;
    
    
    
    public class XSW{
        static void Find(int ID[],int N,int candidate[])
        {
            int nTimes[]={0,0,0};
            for(int i=0;i<N;i++)
            {
                if(ID[i]==candidate[0])
                {nTimes[0]++;}
                else if(ID[i]==candidate[1])
                {nTimes[1]++;}
                else if(ID[i]==candidate[1])
                {nTimes[2]++;}
                else if(nTimes[0]==0)
                {
                    nTimes[0]=1;
                    candidate[0]=ID[i];
                }
                else if(nTimes[1]==0)
                {
                    nTimes[1]=1;
                    candidate[1]=ID[i];
                }
                else if(nTimes[2]==0)
                {
                    nTimes[2]=1;
                    candidate[2]=ID[i];
                }
                else
                {
                    nTimes[0]--;
                    nTimes[1]--;
                    nTimes[2]--;
                }
            }
            System.out.println("三个符合条件的ID分别是:");
            for(int i=0;i<3;i++)
            {
                System.out.println(candidate[i]+" ");
            }
        }
        public static void main(String args[])
        {
            int ID[]={1,1,1,2,2,2,3,3,3,1,2,3,1,2,3,6};
            int N=16;
            int candidate[] = {-1,-1,-1};
             
            System.out.println("打印ID列表");
            for(int i=0;i<N;i++)
            {
                System.out.println(ID[i]);
            }
            Find(ID,N,candidate);
            
        }
    }
    View Code

  • 相关阅读:
    cookie和session区别
    jsp编写页面时常见错误提示
    web处理jsp文件的三个阶段
    JSP页面元素
    B/S与C/S区别
    url组成部分
    css选择器
    ol,ul,dl,table标签的基本语法
    剑指offer-把二叉树打印成多行
    剑指offer-从上往下打印二叉树
  • 原文地址:https://www.cnblogs.com/hanzhu/p/5533321.html
Copyright © 2011-2022 走看看