课堂练习四

设计思想:

输入id总数,输入id;假设第一个id是水王,若水王id与下一个id不同,则消除不同的,设j等于0减一;若id相同,则j加一;最后剩下的id 为水王。

源代码:

//求论坛上的水王
import java.util.Scanner;
public class test4 {
  public static void main(String[] args){
     Scanner in=new Scanner(System.in);
     int N;
     System.out.println("请输入帖子的总数:");
     N=in.nextInt();
     String list[]=new String [N];
     int i,j=0;
     System.out.println("请输入ID:");
     for(i=0;i<N;i++)
     {
         list[i]=in.next();
     }
     String king=list[0];
     //设水王是第一个ID
     for(i=0;i<N-1;i++)
     {
         //增加相同的,消除不同的,最后剩下的是水王
         if(king.equals(list[i+1]))
         {
            j++;
         }
         else
            j--;
         if(j<0)
         {
             king=list[i+1];
         }
     }
     System.out.println("水王是:"+king);
     in.close();
  }
}

截图:

个人总结:

      这次的课堂练习其实并不困难,主要是我们要理清思路,用排序算和也是可以的,但是太过于繁琐;两两消除法可以更简单地算出结果。

时间: 2024-10-11 17:58:21

课堂练习四的相关文章

课堂测试四(文件读写)

学生信息管理系统 (本程序以文本方式存储数据,不通过数组,直接对文件进行操作) 学生类 Student.java 1 public class Student { 2 private String stunumber; //学号 3 private String name; //姓名 4 private int age; //年龄 5 private boolean sex; //性别 6 private double score; //分数 7 8 /***构造方法***/ 9 public

腾讯课堂——基础数据类型(set集合)

认识集合 由一个或多个确定的元素所构成的整体叫做集合. 集合中的元素有三个特征: 1.确定性(集合中的元素必须是确定的) 2.互异性(集合中的元素互不相同.例如:集合A={1,a},则a不能等于1) 3.无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合. *集合概念存在的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中某个值 集合的定义 s = {1,2,3,1} #定义可变集合 >>> set_test=set('hello

shell编程(六)

一.sed介绍1.sed用来做啥?2.sed如何处理文件?二.sed使用方法介绍1.命令行格式1)语法格式2)举例说明2.脚本格式1)用法2)注意事项3)举例说明3.补充扩展总结三.课堂练习四.课后实战 一.sed介绍 1. sed用来做啥? sed是Stream Editor(流编辑器)的缩写,简称流编辑器:用来==处理文件==的. 2. sed如何处理文件? sed是==一行一行读取==文件内容并==按照要求==进行==处理==,把处理后的结果==输出到屏幕==. 首先sed读取文件中的一行

机器学习课堂笔记(十四)

机器学习课堂笔记(十四) 使用低维数据来近似表示高维数据 通过数据可视化来获得降维数据的物理意义 Σ和∑ni=1不同 Σ的计算对于所有的样本值 此时计算的是一个样本值x(i)的降维z(i) 保留99%的差异性 [U,S,V] = svd(Sigma)调用一次 使用训练集运行PCA,这样定义了x-z的映射,可将其应用于测试集合交叉验证集 PCA应用于可视化时,k=2或k=3 使用PCA避免过拟合将会丢失信息 首先使用原始数据,当算法表现不好时再考虑PCA

2015.7.29 第十三、十四课 jq实例(磁力图片、轮播图、腾讯课堂菜单、可弹出红色菜单、砸蛋游戏)

1.磁力图片: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/cs

软件工程课堂作业(四)——结对开发

一.题目及要求: 1.题目:返回一个整数数组中最大子数组的和. 2.要求: ①输入一个整形数组,数组里有正数也有负数:数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和:求所有子数组的和的最大值:要求时间复杂度为O(n). ②两人结对完成编程任务:一人主要负责程序分析,代码编程,一人负责代码复审和代码测试计划. 3.结对人员:胡亚宝 焦燕 二.设计思路: ①第一个方法,定义一个数组,将所有的子数组的和都求出来放到该数组中,再求最大值,输出.但是在编写过程中,我们发现如果用循环方式存放

软件工程课堂作业(十四)——揪出“水王”

一.题目: 现有一个灌水论坛,信息学院的学生都喜欢在上面交流灌水.传说在论坛上有一个“水王”,它不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目已超过了帖子数目的一半. 如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者ID在其中,请设计算法快速找到这个传说中的“水王”. 二.设计思路: 1.首先要快速找到,要求时间复杂度要低.如果进行ID数目多少排序的话,时间复杂度至少为O(n*lgn),所以不能排序: 2.要想遍历一遍就能找到最多出现的ID,可以将数目少的ID删

软件工程课堂作业(九)——结对开发(四)

一.题目及要求: 题目:返回一个整数数组中最大子数组的和 要求(新加):①如果数组A[0]...A[j-1]首尾相邻,允许A[i-1]...A[n-1],A[0]...A[j-1]之和最大:②同时返回最大子数组的位置. 结对人员:焦燕   胡亚宝 二.设计思路: 我们要解决两个问题:求出环数组中最大的子数组:并且定位出该子数组的位置,把它们的名称输出来.要解决这两个问题,我们从以下两个方面入手: ①求出最大子数组:将数组数值按顺序排好称为“一趟”,每求出一趟的最大子数组后,将第一个数值放到最后一

火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第四节:3D公告板

<使用Cocos2d-x 开发3D游戏>系列在线课程 第四节:3D公告板 视频地址:http://edu.csdn.net/course/attend/1330/20804 交流论坛:mod=viewthread&tid=5&page=1&extra=#pid5" target="_blank">http://www.firestonegames.com/bbs/forum.php? project下载地址:mod=viewthrea