- 博客(25)
- 收藏
- 关注
原创 Comparator接口 & Comparable接口
一、Comparable接口当我们要对数据进行排序时,对于一个简单的数据类型,例如Integer的一个集合: List<Integer> integerList = new ArrayList<>(); integerList.add(3); integerList.add(4); integerList.add(5); integerList.add(1); integerList.a
2021-07-10 15:15:39
190
原创 剑指Offer - 重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。给定数组:前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回以下: 3 / \ 9 20 / \ 15 7前序遍历:根、左、右,所以数组第一个数肯定是根节点;中序遍历:左、右、根,所以可以得出根节点的左边一定是左子树,右边为右子树。根据这两个条件我们就可以得出根节点以及左.
2021-06-23 20:11:43
167
1
原创 平衡二叉树
一、AVL树定义它或者是一颗空树,或者具有以下性质的二叉排序树:它的左子树和右子树的深度之差(平衡因子)的绝对值不超过1,且它的左子树和右子树都是一颗平衡二叉树。二叉排序树定义:一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值;(3)左、右子树也分别为二叉排序树;二、AVL树相关概念1)平衡因子:将二叉树上节点的左子树高度减去右子树高度的值称为该节点的平衡因子BF
2021-06-14 14:49:21
255
1
原创 Java基础 ---- 值传递
1、定义值传递:在调用函数时,将实际参数复制一份传递到函数中,这样在函数中对参数进行修改,就不会影响到原来的实际参数;引用传递:在调用函数时,将实际参数的地址直接传递到函数中。这样在函数中对参数进行的修改,就会影响到实际参数;2、实例1)public class Main { public static void main(String[] args) { int num = 10; new Main().pass(10); System.
2021-06-13 14:40:04
1171
1
原创 内存模型解决缓存一致性问题
由于cpu和主存之间处理速度存在一定差异,为了匹配这种差异,人们在cpu和主存之间添加了多层缓存,L1、L2甚至L3(缓存),在多核cpu环境下,每个cpu都有多个缓存,这就有可能导致各cpu缓存之间数据不一致的问题。
2021-05-15 16:52:53
132
原创 java 内存模型
缓存一致性问题单核cpu,单线程下,cpu独占缓存,操作数据时,不会出现访问冲突问题。单核cpu,多线程下,进程中的多个线程访问进程内的共享数据,cpu会将内存中的某块数据复制到缓存中,但在某一时刻,cpu只能操作一个线程,即使访问统一数据,也不会发生访问冲突。多核cpu,多线程下,线程的执行时可以并行的,而cpu会在各自的缓存中保留一份共享内存的数据,所以并行情况下,对同一数据的操作可能会引发问题。所以说,在cpu和主存之间添加缓存,在多线程的环境下,可能会引发缓存一致性问题。也就是每个c
2021-05-15 14:50:05
103
原创 线程池问题
为什么要使用线程池?降低资源消耗:通过重复利用已经创建的线程减少线程创建和销毁带来的资源消耗。 提高响应速度:当任务到达时,不需要等待线程创建就可以直接执行。 提高线程的可管理性:线程是稀缺资源,如果无限制的创建的,不仅会消耗系统资源,还会降低系统稳定性,使用线程池可以进行统一的分配,调优和监控。实现Runnable和Callable接口的区别?Runnable接口一直存在,而Callable接口实在java 1.5 加入的,目的是为了处理Runnable接口不支持的用例。因为Runnable
2021-05-03 17:15:05
176
原创 java中私有化的构造方法
封装不仅体现在类的属性的封装,对于方法也可以封装,构造方法也可以封装(private 关键字完成封装)例如,将构造方法私有化,外部类是无法直接进实例化的public class Singleton { private Singleton() { System.out.println("实例化---"); } }所以就只能在类的内部实例化对象,然后拿到外部类用(也就是将此方法封装起来,然后提供一个供外部类访问的方法)public class Sin
2021-04-24 21:29:54
1196
原创 7-5 公路村村通 (30分)
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。输入样例:6 151 2 51 3 31 4 71 5 4
2020-05-16 10:39:44
1300
原创 7-3 哈夫曼编码 (30分)
给定一段文字,如果我们统计出字母出现的频率,是可以根据哈夫曼算法给出一套编码,使得用此编码压缩原文可以得到最短的编码总长。然而哈夫曼编码并不是唯一的。例如对字符串"aaaxuaxz",容易得到字母 ‘a’、‘x’、‘u’、‘z’ 的出现频率对应为 4、2、1、1。我们可以设计编码 {‘a’=0, ‘x’=10, ‘u’=110, ‘z’=111},也可以用另一套 {‘a’=1, ‘x’=01, ‘u’=001, ‘z’=000},还可以用 {‘a’=0, ‘x’=11, ‘u’=100, ‘z’=101},
2020-05-15 15:06:00
5118
1
原创 Constructing Roads In JGShining's Kingdom HDU - 1025(二分优化)
运用二分将时间复杂度n*n 优化到n*logn
2019-08-28 11:27:33
157
原创 覆盖的面积
给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积.Input输入数据的第一行是一个正整数T(1<=T<=100),代表测试数据的数量.每个测试数据的第一行是一个正整数N(1<=N<=1000),代表矩形的数量,然后是N行数据,每一行包含四个浮点数,代表平面上的一个矩形的左上角坐标和右下角坐标,矩形的上下边和X轴平行,左右边和Y轴平行.坐标的范围从0到100...
2019-08-22 16:14:28
416
原创 Atlantis
There are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Some of these texts even include maps of parts of the island. But unfortunately, these maps describe diff...
2019-08-22 16:08:11
235
原创 线段树求区间最大连续子段和
首先,要先搞清楚线段树需要维护的几个点:左右端点:l,r;区间和:sum;紧靠左端点的最大子段和:lm;紧靠右端点的最大子段和:rm;最大连续子段和:mx;。。。。。接下来就是我们该如何去维护这些值:sum:很明显就是左右子节点之和;lm:要么最大值只在左子节点lm,要么左子节点sum加上右子节点的lm;(要保证连续)同理rm:右子节点rm或者右子节点sum加左子节点rm;m...
2019-08-19 10:56:21
880
原创 Shashlik Cooking
Long story short, shashlik is Miroslav’s favorite food. Shashlik is prepared on several skewers simultaneously. There are two states for each skewer: initial and turned over.This time Miroslav laid o...
2019-08-17 17:38:41
224
原创 Balancing Act poj-1655
Consider a tree T with N (1 <= N <= 20,000) nodes numbered 1…N. Deleting any node from the tree yields a forest: a collection of one or more trees. Define the balance of a node to be the size of...
2019-08-16 09:51:27
163
原创 Tree Cutting (Easy Version)
You are given an undirected tree of n vertices.Some vertices are colored blue, some are colored red and some are uncolored. It is guaranteed that the tree contains at least one red vertex and at leas...
2019-08-13 16:28:33
157
原创 树状数组求区间内不同数字个数之和(离线处理)
D-query (初学离线的dd)Given a sequence of n numbers a1, a2, …, an and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to return the number of distinct ...
2019-08-06 21:20:02
562
原创 树状数组求逆序数
树状数组求逆序数什么是逆序数离散化树状数组代码部分什么是逆序数随机给一组数,例如:{5,1,4,3},在给定的标准序列下(从小到大或从大到小),所以(5,1)、(5,4)、(4,3)······都为一对逆序对,通过多少次调整能得到标准序列就是这组数的逆序数。(找出所有的逆序对就是逆序数)。可以通过寻找前i个数里面不大于第i个数count[i]来计算逆序数,sum=count[1]+count...
2019-08-05 21:25:27
148
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人