• 课堂练习(找水王问题)


    一、题目背景

      UNIN队设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    二、思路分析

      1、把表中的 id 列取出,存入数组中。

      2、将数组的第一个元素(id)赋值给临时变量temp,计数变量num赋值1。

      3、用temp和下一个数据进行比较,若相等则num加一,若不相等num减一。

      4、若结束temp就是“水王”,若temp减到0,说明此时为止“默认水王”已经和其他的评论者抵消完了==开始的状态,执行第二步。

      5、因为“水王”发帖数目超过了帖子数目的一半,所有经过1-4,遍历一遍一定可以找到水王。

    三、代码

    public class FindShuiwang
    {
        public static void main(String[] args) {
            int p[]={19,11,11,3,11,11,11,8,6,11,11,12,11,29,13};
            int ID=find(p,p.length);
            System.out.println("水王的ID为:"+ID);
        }
    
        public static int find(int p[], int n)
        {
            int temp=0,num=0;
            
            for (int i = 0; i < n; ++i)
            {
                if(num==0)
                {
                    temp=p[i];
                    num++;
                }
                else if(p[i]==temp)
                {
                    num++;
                }
                else 
                {
                    num--;
                }
            }
            
            return temp;
        }
    }
    shuiwang.java
  • 相关阅读:
    python基础
    目标文件格式
    PHP 计算每个月的最后一天
    学习应该专注于学习这件事上
    以 Composer 的方式在 PhpStorm 中添加代码审查工具 Code Sniffer
    开始在博客园写文章啦!
    Git 常用操作
    常用写作格式
    将公司的主要项目从eclipse迁移到android studio for mac环境(1)
    写随笔、博客的心情
  • 原文地址:https://www.cnblogs.com/dd110343/p/12976992.html
Copyright © 2020-2023  润新知