随笔分类 -  Java小结

Java一些知识点和相关书籍的学习
摘要:Deque 定义 创建与其基本操作 例题 计算数组中所有满足以下条件的区间个数 区间最大值 区间最小值 =x 设定区间左端点不变,右端点右移,那么区间最大值减最小值显然是单调递增的。 利用单调性 二分解法搭配RMQ可以做到O(nlogn) 双指针搭配单调队列可以做到O(n) 阅读全文
posted @ 2017-10-12 20:34 江南何采莲 阅读(299) 评论(0) 推荐(0)
摘要:HashMap 定义 创建与其基本操作 例题:D. Andrew and Chemistry 链接:http://codeforces.com/contest/718/problem/D Description During the chemistry lesson Andrew learned t 阅读全文
posted @ 2017-10-12 19:24 江南何采莲 阅读(289) 评论(0) 推荐(0)
摘要:HashSet 定义 创建与其基本操作 例题:HIHOCODER 1370 : 快乐数字 链接:https://hihocoder.com/problemset/problem/1370 描述 判断一个正整数是否是快乐数字? 如果一个数字能够通过有限次快乐变换成为1,则是快乐数字。 快乐变换是对一个 阅读全文
posted @ 2017-10-12 19:02 江南何采莲 阅读(278) 评论(0) 推荐(0)
摘要:PriorityQueue 定义 创建与其基本操作 Java默认小根堆,如果想变大根堆有两种办法 1. 类实现Comparable接口,实现compareTo方法 2. 定义一个比较器类实现Comparator接口,实现compare方法 例题:HIHOCODER 1105 自己实现堆链接:http 阅读全文
posted @ 2017-10-12 16:20 江南何采莲 阅读(278) 评论(0) 推荐(0)
摘要:queue 定义 创建与其基本操作 相关题目: http://www.cnblogs.com/zsyacm666666/p/7656397.html 阅读全文
posted @ 2017-10-12 15:44 江南何采莲 阅读(237) 评论(0) 推荐(0)
摘要:Stack 定义 创建与其基本操作 单调栈的实现(poj 2559) 原理及实现(http://www.cnblogs.com/zsyacm666666/p/6812896.html) 2. MaxTree构造 链接:http://www.cnblogs.com/zsyacm666666/p/737 阅读全文
posted @ 2017-10-12 14:55 江南何采莲 阅读(165) 评论(0) 推荐(0)
摘要:vector 定义 创建与其基本操作 二分查找实现indexOf()lastIndexOf() java //前提保证Vectorv 有序 void Init(){ Collections.sort(v); } public int indexOf(int x){ int l=0,r=v.size( 阅读全文
posted @ 2017-10-12 14:19 江南何采莲 阅读(323) 评论(0) 推荐(0)
摘要:线程的让步 线程让出自己占用的CPU资源 线程让出资源,不指定让给谁 线程让出资源,指定让给谁 方法1: 线程实现交替打印 Java import java.io. ; import java.util. ; class MyRunnable implements Runnable{ private 阅读全文
posted @ 2017-10-09 11:51 江南何采莲 阅读(92) 评论(0) 推荐(0)
摘要:自增数组 详细笔记 相关题目 栈 详细笔记 队列 详细笔记 相关题目 优先队列 默认小根堆,有需要自行设置比较器 详细笔记 堆 详细笔记 map 详细笔记 双端队列 详细笔记 阅读全文
posted @ 2017-08-21 14:09 江南何采莲 阅读(162) 评论(0) 推荐(0)
摘要:对整个体系做一个记录,并不涉及详细应用 Object类 1. 重写toString方法 System.out.println可以打印任何对象在于Object类拥有一个方法 所以子类为了能够正常打印数据,应该对此方法进行重写 2. 重写equals方法 Java中==符号只是检查两个引用是否指向同一对 阅读全文
posted @ 2017-05-31 14:54 江南何采莲 阅读(172) 评论(0) 推荐(0)
摘要:高级线程之线程池 1. 线程池产生 为什么会出现线程池? 在普通情况下,我们需要创建并启动一个线程,当任务完成时,我们将其销毁,这样存在两个不断重复的过程(创建和销毁) 解决方案:我们创建一个线程池,当我们需要使用进程时,从进程池中调用一个,使用完时又将其返回线程池中,这样就避免了两个重复的过程 2 阅读全文
posted @ 2017-05-24 21:49 江南何采莲 阅读(225) 评论(0) 推荐(0)
摘要:atCoder Ants on a Circle(又是蚂蚁问题。。。) 传送门 题意:一个圈,蚂蚁在上面以相同的速度和不同的方向走,问t秒后它们各自的位置。 解法:和经典的蚂蚁问题一致,把相撞的情况看做是穿过,我们不需要关心穿过的蚂蚁去哪儿了,它们的位置是相对不变的。然而。。。这里的路线是一个圈,势 阅读全文
posted @ 2017-04-18 19:50 江南何采莲 阅读(323) 评论(0) 推荐(0)
摘要:CodeForces 800B Volatile Kite(点与直线的距离)(Java 实现) 传送门 如果想要一个凸多边形不退化为凹多边形,那么任意的相邻的三个点必然最多形成一条直线。因此我们可以求出点i 1和i+1的直线向量,再求点i到这条直线的距离,答案必然是取其中最小的一个值 import 阅读全文
posted @ 2017-04-17 19:40 江南何采莲 阅读(202) 评论(0) 推荐(0)
摘要:String HDU 5672(双指针) 传送门 题意:一个字符串中找到所有拥有不少于k个不同的字符的子串。 import java.io. ; import java.util. ; public class Main { static final int N = 1000005; static 阅读全文
posted @ 2017-04-17 15:59 江南何采莲 阅读(206) 评论(0) 推荐(0)
摘要:FZU 1492 地震预测(模拟链表的应用)(Java实现) 怀特先生是一名研究地震的科学家,最近他发现如果知道某一段时间内的地壳震动能量采样的最小波动值之和,可以有效地预测大地震的发生。 假设已知一段时间的n次地壳震动能量的采样值为a1,a2,…an,那么第i 次采样的最小波动值为min{|ai 阅读全文
posted @ 2017-04-17 10:01 江南何采莲 阅读(228) 评论(0) 推荐(0)
摘要:HYSBZ 1050(旅行comf Java实现) 原题地址 解法:枚举每一条边,对于这条边,我们需要找到集合中和其值相差最小的最大边,这个集合是指与包括i边在内的ST联通集。对于这一要求,我们只需对所有的边进行从小到大的排序,那么从i边开始,一条条地加入并查集,一旦形成上述的联通集,立刻停止。 阅读全文
posted @ 2017-04-05 20:27 江南何采莲 阅读(160) 评论(0) 推荐(0)
摘要:Java Arrays.sort() Java中的数组排序函数, 头文件 import java.util.Arrays; 相关API sort重载 可以利用Comparator接口实现不同的排序效果 sort的时间复杂度 Arrays.sort()使用了归并排序算法,时间复杂度为O(nlogn) 阅读全文
posted @ 2017-04-01 17:53 江南何采莲 阅读(2323) 评论(0) 推荐(0)
摘要:Hdu 4864(Task 贪心) 原题链接 题意:给定n台机器和m个任务,任务和机器都有工作时间值和工作等级值,一个机器只能执行一个任务,且执行任务的条件位机器的两个值都大于等于任务的值,每完成一个任务可获奖励500 x+2 y。求完成最多任务前提下可获得最高奖励,输出任务数和奖励数。 解法:对机 阅读全文
posted @ 2017-04-01 17:23 江南何采莲 阅读(660) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2017-03-31 21:13 江南何采莲 阅读(15) 评论(0) 推荐(0)
摘要:Java控制台读写 控制台读 Java中进行控制台读操作主要是通过Scanner,BufferReader,Console类进行 1. Scanner Scanner对象定义 Scanner API 2. Console Console对象的定义 Console API 3. BufferReade 阅读全文
posted @ 2017-03-25 19:20 江南何采莲 阅读(842) 评论(0) 推荐(0)