找水王

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

题目:

  三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。

如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

设计思想

  (1)顺序遍历列表,如果遍历到的帖子的作者的ID和列表的下一个帖子的作者ID相同,则有可能是水王,将ID记录,同时也将ID出现的次数记录,

  (2)当遍历到的ID出现不相同时则将这两个ID都剔除

  (3)如果记录的可能是水王的ID出现次数成为0,则寻找新的可能是水王的ID

代码实现

 1 package demo3;
 2 import java.util.Scanner;
 3 public class WaterKing {
 4     public static void main(String[] args) {
 5         int[] a = null;
 6         Scanner sc = new Scanner(System.in);
 7         System.out.print("帖子总个数:");
 8         int sum = sc.nextInt();
 9         a = new int[sum];
10         System.out.print("输入每个帖子的作者(ID):");
11         for (int i = 0; i < sum; i++) {
12             a[i] = sc.nextInt();
13         }
14         sc.close();
15         int n = 0;
16         int nid = -1;
17         for (int i = 0; i < a.length - 1; i++) {
18             if (n == 0) {
19                 if (a[i] == a[i + 1]) {
20                     n = 2;
21                     nid = a[i];
22                 } else {
23                     if ((i + 1) == a.length - 1) {
24                         nid = a[a.length - 1];
25                     }
26                 }
27                 i++;
28             } else {
29                 if (nid == a[i]) {
30                     n++;
31                 } else {
32                     n--;
33                 }
34             }
35         }
36         System.out.print("水王的ID : " + nid);
37     }
38 }
View Code

实现截图

 

个人总结

   刚开始写的时候,思路不对,后来和别人讨论的时候才知道自己想思考不全面,没有考虑到许多情况。对水王Id出现情况判断不准。

    通过这次实验,使我加深了对特殊问题一般化,找到其中的规律等的理解

目录
相关文章
|
5月前
|
人工智能 运维 Cloud Native
把汉堡王搬上阿里云
把汉堡王搬上阿里云
112 9
|
自动驾驶 安全 算法
|
存储 程序员
Geek 青年说北京沙龙分享
5 月 23 号参加了 infoQ 写作平台组织的线下沙龙,瞻仰了很多大佬的英姿。在 Geek 青年说的环节,也壮起胆量上台分享了自己的一些观点。第一次上台,面对台下的大佬们,难免有些紧张。不过思考不易,整理出来,希望能够帮到有相同困惑的同仁们。
118 0
Geek 青年说北京沙龙分享
|
自然语言处理 UED
王海峰被任命为百度 CTO,李一男曾担任该职位
这次提拔,也可以被视为李彦宏稳定军心、强调技术的求变之举。
974 0
需求为王,互联网营销
  在进入投资行业之前,我做互联网产品。所有产品人员,要做的第一件事就是研究用户需求。进了投资行业,分析了很多公司之后,发现这是一个普遍真理。   之前在创业公司和创投圈,讲得最多的一个词就是Business Model。
738 0
|
机器学习/深度学习 存储 大数据