• 课堂作业05


    设计思路:(1)每次删除4个不同的ID(不管是否超过总数1/4的ID),那么,剩下的ID列表中,
    原先发帖比例大于1/4的ID所占比例仍然大于1/4。可以通过不断重复这个过程,
    把ID总数降低,从而得到问题的答案。
    (2)用candidate[3]记录三个候选ID,用Times[3]记录它们的累积次数.
    (3)然后遍历整个ID列表,每处理一个ID,若与candidate[i]中的某一个相同,
    则Times[i]++,若与三个都不同,则说明找到了四个互不相同的ID,将三个
    Times[i]--,也就相当于“删除了四个不同ID”.
    (4)若某一个count[i]==0,则更新之。 源代码:
    public class FindKingOfWater {
    	public static void main(String args[])
    	{
    		int ID[]={1,2,3,4,1,2,3};
    		Find(ID);
    	}
    		public static void Find(int ID[])
    		{
    			int Times[]=new int[3];
    			int candidate[]=new int[3];
    			Times[0]=Times[1]=Times[2]=0;
    			candidate[0]=candidate[1]=candidate[2]=0;
    			for(int i=0;i<ID.length;i++)
    			  {
    				if(ID[i]==candidate[0])
    				{
    					Times[0]++;
    				}
    
    				else if(ID[i]==candidate[1])
    				{
    					Times[1]++;
    				}
    
    				else if(ID[i]==candidate[2])
    				{
    					Times[2]++;
    				}
    				else if(Times[0]==0)
    				{
    					Times[0]=1;
    					candidate[0]=ID[i];
    				}
    				else if(Times[1]==0)
    				{
    					Times[1]=1;
    					candidate[1]=ID[i];
    				}
    				else if(Times[2]==0)
    				{
    					Times[2]=1;
    					candidate[2]=ID[i];
    				}
    	                    else
    				{
    					Times[0]--;
    					Times[1]--;
    					Times[2]--;
    					
    				}
    			  }
    			for(int i=0;i<3;i++)
    			{
    				System.out.println("水王"+(i+1)+"的ID是:"+candidate[i]);
    			}
    		}
    			
    	}
    		
    

    程序截图: 

     

  • 相关阅读:
    05.设计模式_建造者模式
    04.设计模式_抽象工厂模式
    03.设计模式_工厂方法模式
    02.设计模式_单例模式
    01.设计模式_简单工厂模式
    cocos-js一些问题
    blender
    游戏编程模式
    Unity自动打包工具
    unity调用ios原生代码objective-c和回调
  • 原文地址:https://www.cnblogs.com/ygl888/p/5535540.html
Copyright © 2020-2023  润新知