05 2018 档案

摘要:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 示例: 说明: 你的算法只能使用常数的额外空间。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 代码如下: 阅读全文
posted @ 2018-05-28 19:32 Booker808 阅读(168) 评论(0) 推荐(0)
摘要:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 因为链表的节点只有next指针,并且我们的题目要求只能扫描一次就完成删除,所以我们不能简单的创建一个数组来解决问题,所以我们可以这样来: (1)删除倒 阅读全文
posted @ 2018-05-26 12:01 Booker808 阅读(120) 评论(0) 推荐(0)
摘要:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。 请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes为节点总数。 示例: 说明: 应当保持奇数节点和偶数节点的 阅读全文
posted @ 2018-05-26 11:54 Booker808 阅读(210) 评论(0) 推荐(0)
摘要:原文链接:https://www.cnblogs.com/study-everyday/p/8629100.html 一、算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类 阅读全文
posted @ 2018-05-25 14:09 Booker808 阅读(273) 评论(0) 推荐(0)
摘要:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 该题目的要求是只需要扫描一次就可以实现,那么我们就不可能去创建一个数组来解决该问题,因为把链表元素全部放进数组就要扫描一次,而把删除后的数组放入链表又 阅读全文
posted @ 2018-05-24 22:16 Booker808 阅读(188) 评论(0) 推荐(0)
摘要:jvm中内存划分: 如上图,一共分为五块,其中: 线程共享区域为: 1、java堆 2、方法区 线程私有区域为: 3、JVM栈 4、本地方法栈 5、程序计数器 java技术体系中锁提倡的自动内存管理归结为自动化的解决了两个问题: (1)给对象分配内存 (2)回收给对象分配的内存(关于回收算法请另见  阅读全文
posted @ 2018-05-23 17:24 Booker808 阅读(270) 评论(2) 推荐(1)
摘要:如上图,因为我在SSH上的用户没有对Linux服务器的文件夹的修改权限,我在linux上把文件夹的权限改为可读可改,就可以了 阅读全文
posted @ 2018-05-22 17:17 Booker808 阅读(588) 评论(0) 推荐(0)
摘要:给定一个二叉树 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。 初始状态下,所有 next 指针都被设置为 NULL。 说明: 你只能使用额外常数空间。 使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间 阅读全文
posted @ 2018-05-21 19:55 Booker808 阅读(205) 评论(0) 推荐(0)
摘要:垃圾收集算法 1.标记清除算法 最基础的GC算法是“标记--清除”算法,顾名思义,这个算法分为“标记”和“清除”两个过程:先标记出所有需要被回收的对象,在标记完成后,统一进行回收,之所以叫做最基础的,是因为后续的算法是针对该算法不足的地方进行改进。首先,标记清除是个很繁琐的过程,效率较低,每当进行过 阅读全文
posted @ 2018-05-20 16:09 Booker808 阅读(155) 评论(0) 推荐(0)
摘要:总结 在需要的删除等操作时,不能使用简单的foreach,因为其底层依然用的是Iterator,但是调用的是集合中的remove方法。 使用迭代器对象调用其中的remove方法,以保证线程同步。 在需要的删除等操作时,不能使用简单的foreach,因为其底层依然用的是Iterator,但是调用的是集 阅读全文
posted @ 2018-05-19 18:21 Booker808 阅读(340) 评论(0) 推荐(0)
摘要:给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 非递归代码如下所示: 递归代码如下: 阅读全文
posted @ 2018-05-18 23:12 Booker808 阅读(168) 评论(0) 推荐(0)
摘要:AVL(Adelson-Velskii and Landis)树是带有平衡条件的二叉查找树。这个平衡条件必须要容易保持,而且它保证树的深度须是o(logN)。最简单的想法是要求左右子树具有相同的高度,这种想法并不要求树的深度要浅。 另一种平衡条件是要求每个节点都必须要有相同高度的左子树和右子树。通常 阅读全文
posted @ 2018-05-17 21:31 Booker808 阅读(249) 评论(0) 推荐(0)
摘要:待写 阅读全文
posted @ 2018-05-10 20:10 Booker808 阅读(141) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2018-05-04 22:44 Booker808 阅读(184) 评论(0) 推荐(0)
摘要:待写 阅读全文
posted @ 2018-05-01 23:31 Booker808 阅读(168) 评论(0) 推荐(0)
摘要:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 归并排序中,我们会先找到一个 阅读全文
posted @ 2018-05-01 23:30 Booker808 阅读(1291) 评论(0) 推荐(0)
摘要:一、二叉堆的定义 堆树的定义如下: (1)堆是必须是一颗完全二叉树; (2)堆中某个节点的值总是大于或者小于子节点的值; (3)堆中每个非终端节点都可以看做是一个堆的根节点。 当父节点的键值总是大于或等于任何一个子节点的键值时为最大堆。 当父节点的键值总是小于或等于任何一个子节点的键值时为最小堆。如 阅读全文
posted @ 2018-05-01 23:29 Booker808 阅读(683) 评论(0) 推荐(0)