HDOJ 1029 Ignatius and the Princess IV
来源:互联网 发布:淘宝客户端怎么改差评 编辑:程序博客网 时间:2024/05/01 04:48
HDACM 1029
关于这一题,我们要认识一下:
java.io.StreamTokenizer因为按习惯是采用
Scanner sc = new Scanner(System.in)
这种方式去从控制台接收参数的,但是对于百万数据来说,采用这个函数来接收速度是远远不够的。
那么开始认识 StreamTokenizer类
StreamTokenizer
类获取输入流并将其解析为“标记”,允许一次读取一个标记。解析过程由一个表和许多可以设置为各种状态的标志控制。该流的标记生成器可以识别标识符、数字、引用的字符串和各种注释样式。
从输入流读取的每个字节都被视为一个字符,范围在 '\u0000'
到 '\u00FF'
之间。字符值用于查找该字符的五个可能属性:空白、字母、数字、字符串引号 和注释字符。每个字符都可以有零个或多个这样的属性。
另外,一个实例还有四个标志。这些标志指示:
- 行结束符是作为标记返回,还是被视为仅用于分隔标记的空白。
- 是标识还是跳过 C 样式注释。
- 是标识还是跳过 C++ 样式注释。
- 是否将标识符的字符转换为小写字母。
典型的应用程序首先构造此类的一个实例,建立一个语法表,然后重复循环,调用该循环的每个迭代中的 nextToken
方法,直到返回值TT_EOF
。
常用方法:
double navl ——> 如果当前标记是一个数字,则此字段将包含该数字的值。 String sval ——> 如果当前标记是一个文字标记,则此字段包含一个给出该文字标记的字符的字符串。 static int TT_EOF ——>指示已读到流末尾的常量。 static int TT_EOL ——->指示已读到行末尾的常量。 static int TT_NUMBER——->指示已读到一个数字标记的常量。 static int TT_WORD ——-> 指示已读到一个文字标记的常量。 int ttype ——–> 在调用 nextToken() 方法之后,此字段将包含刚读取的标记的类型。
想更深入的了解StreamTokenizer类可以查看API 或者百度相关知识。
对了,我还采用了MAP集合来存储数据,因为题目题意是求众数,所以采用map集合来做,map集合的原理是一个key值对应一个value值,在同一个map集合中每个key值都是唯一的。所有每当输入一个数时,把输入的数当做key值,然后调用get函数获取其value值,如果为null 则说明这个数时第一个数,否则就把value值+1,在把键值对放入map集合中,这样就可以了。
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.StreamTokenizer;import java.util.HashMap;import java.util.Map;public class Main { public static void main(String[] args) { StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); try { while(in.nextToken() != StreamTokenizer.TT_EOF){ int n = (int)in.nval; int max = 0; int ans = 0; Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (int i = 0; i < n; i++) { in.nextToken(); int num = (int)in.nval; if (map.get(num)==null) { map.put(num, 1); continue; } int value = map.get(num)+1; if (max<value) { max = value; ans = num; } map.put(num, value); } System.out.println(ans); } } catch (IOException e) { e.printStackTrace(); } }}
阅读全文
0 0
- 【HDOJ】1029 -> Ignatius and the Princess IV
- hdoj 1029 Ignatius and the Princess IV
- HDOJ 1029 Ignatius and the Princess IV
- HDOJ Ignatius and the Princess IV 1029
- HDOJ 1029 Ignatius and the Princess IV
- hdoj 1029 Ignatius and the Princess IV
- HDOJ 1029 Ignatius and the Princess IV
- hdoj-1029-Ignatius and the Princess IV
- hdoj 1029 Ignatius and the Princess IV
- HDOJ 1029 Ignatius and the Princess IV
- HDOJ 1029 Ignatius and the Princess IV [map]
- HDOJ 1029:Ignatius and the Princess IV 解题报告
- hdoj.1029 Ignatius and the Princess IV 20140809
- HDOJ 1029 Ignatius and the Princess IV 【math】
- hdoj 1029 Ignatius and the Princess IV 【简单】
- HDOJ 1029 Ignatius and the Princess IV (水题)
- HDOJ 1029 Ignatius and the Princess IV(易题)
- 杭电HDOJ 1029 Ignatius and the Princess IV
- Web响应式布局设计简介
- [SHOI2008]堵塞的交通traffic
- 【博文视点送书福利】Java程序员也应该会点产品经理的活!另外还要有小程序哦!
- jquery mouse事件小坑
- hdu1065 Wooden Sticks
- HDOJ 1029 Ignatius and the Princess IV
- Ubuntu上 linux-image-extra-4.13.0-17-generic ,linux-image-generic,linux-generic错误解决方法
- 宝塔Linux面板5.X正式版安装\SSL配置\异地备份教程
- 60使用nanopim1plus查看HDMI显示分辨率的问题(分色排版)V1.0
- Centos 系统swap虚拟内存添加与删除配置
- shell中取字符串子串的3种方式
- 解决Could not open Hibernate Session for transaction; nested exception is java.lang.NoClassDefFoundErr
- nginx_tomcat集群部署
- RequireComponent的使用