zoukankan      html  css  js  c++  java
  • 课堂作业找水王2

    找水王2:

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

    设计思想:

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

    代码实现:

    package test1;
    
    public class ForumKing {
    
        public static void main(String[] args) {
            int ID[]={1,1,3,1,2,3,2,2,3,4};
            int n=10;
            int times[]=new int[3];
            int king[] =new int[3];
            times[0]=times[1]=times[2]=0;
            king[0]=king[1]=king[2]=-1;
            for(int i=0;i<n;i++){ 
                  if(ID[i]==king[0])  
                  {    
                      times[0]++;     
                  }
                  else if(ID[i]==king[1])   
                  {
                      times[1]++;
                  }    
                  else if(ID[i]==king[2])   
                  {    
                      times[2]++;
                  }   
                  else if(times[0]==0)   
                  {    
                      times[0]=1;    
                      king[0]=ID[i];    
                  }    
                  else if(times[1]==0)   
                  {    
                      times[1]=1;    
                      king[1]=ID[i];   
                  }    
                  else if(times[2]==0)   
                  {    
                      times[2]=1;    
                      king[2]=ID[i];   
                  } 
                  else//此时删除四个不同元素   
                  {    
                      times[0]--;    
                      times[1]--;    
                      times[2]--;   
                  }   
            }
            System.out.println("水王的ID:");
            for(int j=0;j<3;j++)
            {
                System.out.print(king[j]+" ");
            }
        }
    
    }

    结果截图:

    心得体会:

    这一类问题大致就是运用一个思想就能解决那就是等效替换的思想,利用消除多余项来简化问题,这种思想很是简洁实用。

  • 相关阅读:
    css滑动门技术02
    ASP.NET2.0中创建自定义配置节处理程序(声明性模型)
    怎样看到ASP.NET从ASPX产生的代码?
    PetShop 4.0 详解之六(PetShop表示层设计)
    如何让Office 2003通过正版验证
    在windows 2003中安装mysql5
    Agile PLM 界面操作变慢优化
    Agile PLM 数据库密码修改
    Agile PLM 文件服务器报错解决
    pyautogui
  • 原文地址:https://www.cnblogs.com/kt97458/p/5535402.html
Copyright © 2011-2022 走看看