• 课堂练习之谁是水王(一)


    设计思想:

    可以遍历ID表,两两相邻的ID进行比较,若不同则删掉,那么在剩余的ID表中水王的ID号仍然超过总数的一半,不断重复这个过程,把列表中ID总数降低,最后剩下的肯定是水王的ID。

    代码实现:

    //根据一张ID账户列表,找出水王的ID号码(水王发帖回帖数目超过1/2)
    //范亚雷   2016.05.20
    
    import javax.swing.JOptionPane;
    
    public class KingWater {
        public static void main(String[] args) {
            String inputNumber = JOptionPane.showInputDialog("请输入要测试的ID号码的数量:");
            int Number=Integer.parseInt(inputNumber);
            String[] ID=new String[Number];
            
            //input
            for(int i=0;i<Number;i++)
            {
                String inputID= JOptionPane.showInputDialog("请输入列表中第"+(i+1)+"个ID号码:");
                ID[i]=inputID;
            }
            
            String WaterKing=new String();
            int sentry=0;  
    
            for(int i=0;i<Number;i++)
                { 
                    if(sentry == 0)
                    { 
                        WaterKing = ID[i]; 
                        sentry = 1; 
                    } 
                    else
                    { 
                        if(WaterKing.equals(ID[i])) 
                            sentry ++; 
                        else  
                            sentry --; 
                    } 
                }
    //output JOptionPane.showMessageDialog(
    null, WaterKing, "水王的ID是:",JOptionPane.PLAIN_MESSAGE); } }

    实现截图:

    个人总结:

    这次实验题目有个条件就是水王发帖的ID号超过所以ID号一半以上,因此这就是这题的突破点。对于时间复杂度,好的设计思路可以大大降低时间复杂度,比如这题就可以将时间复杂度降低到O(N)。

  • 相关阅读:
    ActiveMQ持久化机制
    ActiveMQ的使用
    ActiveMQ解释
    Linux CentOS安装Tomcat
    nginx使用Keepalived
    Session共享解决方案
    Spring框架AOP使用扩展
    Myabtis测试(二)错题整理分析
    初识Spring及打印机案例
    MyBatis注解
  • 原文地址:https://www.cnblogs.com/fan-xiaofan/p/5513019.html
Copyright © 2020-2023  润新知