课堂练习之谁是水王(一)
生活随笔
收集整理的这篇文章主要介绍了
课堂练习之谁是水王(一)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
设计思想:
可以遍历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年技术见证,附赠技术全景图总结
以上是生活随笔为你收集整理的课堂练习之谁是水王(一)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 两种方法设置disabled属性
- 下一篇: 自定义PopupWindow弹出后背景灰