欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2024/9/5 编程问答 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 课堂练习之谁是水王(一) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

设计思想:

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

代码实现:

//根据一张ID账户列表,找出水王的ID号码(水王发帖回帖数目超过1/2) //范亚雷 2016.05.20import 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];//inputfor(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 --; } }
//outputJOptionPane.showMessageDialog(
null, WaterKing, "水王的ID是:",JOptionPane.PLAIN_MESSAGE);} }

 

实现截图:

个人总结:

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

转载于:https://www.cnblogs.com/fan-xiaofan/p/5513019.html

与50位技术专家面对面20年技术见证,附赠技术全景图

总结

以上是生活随笔为你收集整理的课堂练习之谁是水王(一)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。