找水王
一、题目要求
三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?
二、设计思想
(1)发帖者的id随机生成动态数组。
(2)利用“消消乐”的思想,消除相邻元素id不同的两个元素,最后剩下的便是“水王”。
(3)输出结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package shuiwang; import java.util.Vector; /* 找出水王 */ public class Main { public static void main(String[] args) { Vector<Integer> a= new Vector<>(); //构建动态数组 Integer f= 8 ; for ( int i= 0 ;i< 47 ;i++) { Integer k=( int ) ( 1 +Math.random()* 100 ); a.add(k); //添加48个在1-100的随机数 } for ( int i= 0 ;i< 53 ;i++) { a.insertElementAt(f,( int ) ( 1 +Math.random()*a.size()- 1 )); //向这48个数中随机插入8,这个水王数字 } for (Integer integer : a) System.out.print(integer + " " ); System.out.println(); int cnt= 0 ; int ans= 0 ; /*解决方法类似于消消乐,根据目前已有的数量和其他的对比,不一样就都消掉,一样就增加个数*/ for ( int i= 0 ;i<a.size();i++) { if (cnt== 0 ) { ans=a.get(i); cnt++; } else { if (ans==a.get(i)) cnt++; else cnt--; } } System.out.println(); System.out.println( "海王编号:" +ans); } } Main.java<br> |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步