ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

寻找水王

2019-06-04 13:54:28  阅读:223  来源: 互联网

标签:java maxs System 寻找 水王 max import


1,题目:三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

2,思想:最主要的点就是“水王”的发帖数目是总数目的一般以上。

           我们可以从头开始遍历这个数组,把遍历的第一个id储存起来并总数为1,往后遍历,如果和储存的id是相等的那么总数加一,如果不相等总数减一,并判断这个总数是否小于零,如果小于零,则将这个不相等的id跟原来储存的交换,并初始化总数为1。以此往返,最后面留下来的就是"s水王"。

           这样我们可以通过相互抵消的方法寻找水王,因为哪怕遍历的第一个人就是水王,经过一系列的相互抵消最后还是会剩下"水王"。

3,代码:

package analyse_word; import java.io.File;
import java.io.FileNotFoundException;
import java.sql.Time;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set; public class English_word {
 
 public static void main(String[] args) throws FileNotFoundException {

  long startTime = System.currentTimeMillis();
  File file = new File("D:\\water_king.txt");// 读取文件
  if (!file.exists()) {// 如果文件打不开或不存在则提示错误
   System.out.println("文件不存在");
   return;
  }
  String max="";int maxs=0;
  Scanner x = new Scanner(file);

  if(x.hasNextLine()) {
   max = x.nextLine();
   maxs=1;
  }
  while (x.hasNextLine()) {
   String line = x.nextLine();
   if(max==line) {
    maxs++;
   }else {
    maxs--;
    if(maxs<0) {
     max=line;
    }
   }
    

  long endTime = System.currentTimeMillis();
  System.out.println(endTime-startTime+"ns");
  System.out.println(max);

 }
}

标签:java,maxs,System,寻找,水王,max,import
来源: https://www.cnblogs.com/goubb/p/10973049.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有