题目要求
P1097题目连接
这题标签里有一个“高性能”,瞬间令我心惊胆战,毕竟Java嘛。
我们应该会写排序,比如快排,但可以利用现成的数据结构啊,本来想的是TreeSet,后来觉得反而还需要包装一个类,不划算,不若来个TreeMap,Key是Integer类型的Number,Value是Integer类型的Counter。 如果不在TreeMap里就插入,counter置默认1;如果在就counter+1。
最后可直接输出,很是便捷。
但说着说着高性能嘛,果然TLE了一个,测试数据9我就不Share了,毕竟太长了,没法放在博客里,感兴趣去我的Github看吧~~ 也可以自己去洛谷TLE一次哈哈哈 ~~
问题就是Map的遍历问题,HashMap的话我还是了解的,但TreeMap其实和HashMap挺不一样的,我就默认按照遍历key,获取value的方式进行(这样其实不好)。 最终,改为获取迭代器,毕竟可能会更高效一些,终于涉险过关。
有关于各种遍历方式的效率差别,以后可能会专门拿出来说说,这里就不加以赘述,希望感兴趣的读者自己多加比对,这种积累可能在一些小的性能瓶颈能帮到你。
第二次提交怕超时,删了scanner.close(),不知可有微薄影响,反正过了总是开心的嘛~~
第一次提交——TLEimport java.util.Scanner;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) {
TreeMap map = new TreeMap();
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?