zoukankan      html  css  js  c++  java
  • 课堂练习之谁是水王(一)

    设计思想:

    可以遍历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)。

  • 相关阅读:
    非常简洁的js图片轮播
    js广告图片轮播
    图片轮播
    分享到QQ空间、新浪微博、腾讯微博和人人网
    五星简单操作
    Struts2 多文件上传
    CSS3实践之路(六):CSS3的过渡效果(transition)与动画(animation)
    JavaScript中的数据类型
    JavaScript中对象是否需要加引号?
    变量提升(hoisting)
  • 原文地址:https://www.cnblogs.com/fan-xiaofan/p/5513019.html
Copyright © 2011-2022 走看看