问题的表述就是说有那么一个人,他在一个论坛上发帖,然后每贴必回,自己也发帖。那么这个人在发帖的数目上就超过了整个论坛的帖子数目的一半以上。

我对这个问题一开始的思路是,用SQL语句获取整个列表中的数据,每次用sql读取id出现次数List储存这个人的id,接着读取下一个id,若在list中存在则跳过。若发帖数大于数据/2则这个人是“水王”。

我在课上完成的代码如下,其中list是我定义的获取全部数据的一个sql函数:

ClassService service=new ClassService();
String []strList=new String[]{"no","id"};
@SuppressWarnings("unchecked")
List<People> people= (List<People>) service.list("reply",strList,new People().getClass());
List<String> ids=new ArrayList<String>();
int num=people.size();
int count=0;
for(int i=0;i<=num/2;i++)
{
String itId=people.get(i).getId();
if(ids.contains(itId))
continue;
String []strList1=new String[]{"id","no"};
String []strList2=new String[]{itId};
@SuppressWarnings("unchecked")
List<People> peopleTemp= (List<People>) service.search("reply",strList1,strList2,new People().getClass());
if(peopleTemp.size()>=people.size()/2)
{
System.out.println("水王是"+itId);
System.out.println("他的发帖数是"+peopleTemp.size());
break;
}
ids.add(itId);
}

要求二是对上述算法将复杂度降低到O(n),我在上课的期间并没有想到好的思路,原因在于:

要求1.不能定义变量,只要求一次循环便得出最后水王是谁。

我尝试利用list.add(list.remove())嵌套,可惜最终实验没有成功,也许是过于愚昧,并不能想出对应的解决思路。

同学的思路:定义两个变量(我感觉已经不符合题意了),然后在这个的基础上进行一次循环得出水王的值。

Java实验--关于课上找“水王”问题分析的更多相关文章

  1. (疯狂java)第四课(上)

    趁着周末玩爽了,兴致来了,继续玩玩java(估计再玩下去,就要被java玩了),第六章实在是很长,那就两个阶段来看吧. 1.java 7的增强包装类 这些包装类就是java上的基本类型,只不过人人基本 ...

  2. 20175316盛茂淞 2018-2019-2 《Java程序设计》第2周课上测试总结

    20175316 2018-2019-2 <Java程序设计>第2周课上测试总结 上周考试题目总结 题目1 题目要求: 在Ubuntu中用自己的有位学号建一个文件,教材p29 Exampl ...

  3. 20155205 《Java程序设计》0510课上实践博客

    20155205 <Java程序设计>0510课上实践博客 一.教材代码检查-p98 未提交成功原因: 一开始在iterm中运行,但是结果出错,没有时间提交了.这个提交其实很简单,没有提交 ...

  4. 第一次 在Java课上的编程

    第一次在java课上的编程(使用参数输入求和): 代码: public class He {    public static void main(String[] args)    {       ...

  5. 20155325 2017-2018 1 课上测试、课下作业、实验——码云&博客链接汇总 《信息安全系统设计基础》

    第二周-课上 码云 https://gitee.com/bestiisjava2017/XinXiAnQuanXiTongSheJiJiChu20155325thl/tree/master/0927 ...

  6. Java 课上的语录

    Java 课上的语录 在用系统类库的类的时候啊,你是不是充分的理解这个系统类库的类.比如这个 ArrayList 你是不是知道它里面有这样那样这样那样的函数,能够帮你做各种各样的事情.很重要,你不知道 ...

  7. mapreduce课上实验

    今天我们课上做了一个关于数据清洗的实验,具体实验内容如下: 1.数据清洗:按照进行数据清洗,并将清洗后的数据导入hive数据库中: 2.数据处理: ·统计最受欢迎的视频/文章的Top10访问次数 (v ...

  8. 关于转入软件工程专业后第二次java课上作业的某些体会

    今天是第二周的java课. 自从转入了软件工程专业后,在我没有学习c++的基础上,直接开始了学习java的过程.不得不说过程很艰辛.今天下午老师让编写一个随机产生作业的软件.而我的基础差到都不知道如何 ...

  9. 20165305 苏振龙《Java程序设计》第八周课上测试补做

    1. 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入world.sql,提交导入成功截图 2. ...

随机推荐

  1. 利用http录制jmeter脚本

    1.在WorkBench下新建HTTP(S) Test Script Recorder,默认端口号为8080,假如8080被占用,则使用其他端口号:且为了使录制保存到线程组里,也同时新建一个线程组Tr ...

  2. POJ - 1321 深度优先搜索入门

    #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> us ...

  3. luogu2394 yyy loves Chemistry I

    练习 #include <iostream> #include <cstdio> using namespace std; long double a; int main(){ ...

  4. Oracle 了解 DDL 操作与 REDO 的关系

    目录 了解 DDL 操作与 REDO 的关系 DDL是否会产生REDO 通过 10046 trace 来分析create 和drop 如果drop失败,redo的变化 了解 DDL 操作与 REDO ...

  5. stl vector 类

    目录 [-]说明构造方法例子vector 类中定义了4中种构造函数: · 默认构造函数,构造一个初始长度为0的空向量,如:vector<int> v1; · 带有单个整形参数的构造函数,此 ...

  6. wordpress 获取站点的所有链接

    <?php include "wp-load.php"; $posts = new WP_Query('post_type=any&posts_per_page=-1 ...

  7. ansible /usr/bin/python: not found

    使用ansible命令的时候出错 ansible all -m ping 出现报错 192.168.199.154 | FAILED! => { "changed": fal ...

  8. 利用ajax实现数据传输

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). AJAX 不是新的编程语言,而是一种使用现有标准的新方法. AJAX 是与服 ...

  9. 【Luogu】P1169棋盘制作(单调栈)

    题目链接 唉……这种题放在NOIP以前我是会做的……但是为什么现在反而不会了…… 单调栈.预处理每个点向上能扩展的最大距离,左右用两遍单调栈扫一遍.注意边界. #include<cstdio&g ...

  10. HDU——1846Brave Game(巴什博弈)

    Brave Game Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...