Java实验--关于课上找“水王”问题分析
问题的表述就是说有那么一个人,他在一个论坛上发帖,然后每贴必回,自己也发帖。那么这个人在发帖的数目上就超过了整个论坛的帖子数目的一半以上。
我对这个问题一开始的思路是,用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实验--关于课上找“水王”问题分析的更多相关文章
- (疯狂java)第四课(上)
趁着周末玩爽了,兴致来了,继续玩玩java(估计再玩下去,就要被java玩了),第六章实在是很长,那就两个阶段来看吧. 1.java 7的增强包装类 这些包装类就是java上的基本类型,只不过人人基本 ...
- 20175316盛茂淞 2018-2019-2 《Java程序设计》第2周课上测试总结
20175316 2018-2019-2 <Java程序设计>第2周课上测试总结 上周考试题目总结 题目1 题目要求: 在Ubuntu中用自己的有位学号建一个文件,教材p29 Exampl ...
- 20155205 《Java程序设计》0510课上实践博客
20155205 <Java程序设计>0510课上实践博客 一.教材代码检查-p98 未提交成功原因: 一开始在iterm中运行,但是结果出错,没有时间提交了.这个提交其实很简单,没有提交 ...
- 第一次 在Java课上的编程
第一次在java课上的编程(使用参数输入求和): 代码: public class He { public static void main(String[] args) { ...
- 20155325 2017-2018 1 课上测试、课下作业、实验——码云&博客链接汇总 《信息安全系统设计基础》
第二周-课上 码云 https://gitee.com/bestiisjava2017/XinXiAnQuanXiTongSheJiJiChu20155325thl/tree/master/0927 ...
- Java 课上的语录
Java 课上的语录 在用系统类库的类的时候啊,你是不是充分的理解这个系统类库的类.比如这个 ArrayList 你是不是知道它里面有这样那样这样那样的函数,能够帮你做各种各样的事情.很重要,你不知道 ...
- mapreduce课上实验
今天我们课上做了一个关于数据清洗的实验,具体实验内容如下: 1.数据清洗:按照进行数据清洗,并将清洗后的数据导入hive数据库中: 2.数据处理: ·统计最受欢迎的视频/文章的Top10访问次数 (v ...
- 关于转入软件工程专业后第二次java课上作业的某些体会
今天是第二周的java课. 自从转入了软件工程专业后,在我没有学习c++的基础上,直接开始了学习java的过程.不得不说过程很艰辛.今天下午老师让编写一个随机产生作业的软件.而我的基础差到都不知道如何 ...
- 20165305 苏振龙《Java程序设计》第八周课上测试补做
1. 下载附件中的world.sql.zip, 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECDB,导入world.sql,提交导入成功截图 2. ...
随机推荐
- python模块之shutil和zipfile
shutil 模块 高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中 import shutil s ...
- 安装ubuntu16.4后
美化及配置: http://www.fant0m.com/18.html 安装pip: $ wget https://bootstrap.pypa.io/get-pip.py $ python get ...
- MIP启发式算法:Variable fixing heuristic
*本文主要记录及分享学习到的知识,算不上原创 *参考文章见链接. 本文简单介绍一下Variable fixing heuristic,这个算法同样以local search为核心框架,它的特点在于定义 ...
- Python Cdn平台文件md5验证
第一步 先用脚本实现基本的md5验证 1.python如何实现文件的下载 方法一: 使用 urllib 模块提供的 urlretrieve() 函数.urlretrieve() 方法直接将远程数据下载 ...
- luogu3369 【模板】普通平衡树(Treap/SBT) treap splay
treap做法,参考hzwer的博客 #include <iostream> #include <cstdlib> #include <cstdio> using ...
- 使用css Flexbox实现垂直居中
CSS布局对我们来说一直是个噩梦,我们都认为flexbox是我们的救世主.是否真的如我们说说,还有待观察,但是flexbox确非常轻松的解决css长久一来比较难解决的居中问题.让我们来看看到底有多容易 ...
- react技术栈实践(2)
本文来自网易云社区 作者:汪洋 这时候还没完,又有两个问题引出来了. 按照上面的配置,第三方库 antd 竟然也被编译了,导致样式失败. react中,一旦包裹了子组件,子组件没办法直接使用 styl ...
- 【转】LAMP网站架构方案分析【精辟】
[转]LAMP网站架构方案分析[精辟] http://www.cnblogs.com/mo-beifeng/archive/2011/09/13/2175197.html Xubuntu下LAMP环境 ...
- python - 函数的相互调用 及 变量的作用域
# -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_函数的相互调用及变量的作用域.py@ide: PyCharm C ...
- JQuery 页面加载完成后执行事件
一: $(document).ready(function(){ //code }) 二: jQuery(document).ready(function(){ //code }) 三: window ...