给定一个二叉搜索树,编写一个函数kthSmallest来查找其中第k个最小的元素。 注意:你可以假设k总是有效的,1≤ k ≤二叉搜索树元素个数。 进阶:如果经常修改二叉搜索树(插入/删除操作)并且你需要频繁地找到第k小值呢? 你将如何优化kthSmallest函数? 详见:https://leet ...
分类:
其他好文 时间:
2018-04-09 13:23:15
阅读次数:
212
作者:CarpenterLee(转载已获得作者许可,如需转载请与原作者联系) 文中所有图片点击之后均可查看大图! 史上最清晰的红黑树讲解(上) 本文github地址 本文以Java TreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Black tree)的插入,删除以及 ...
分类:
编程语言 时间:
2018-04-08 22:25:10
阅读次数:
212
简介:本文主要介绍了B树和B+树的插入、删除操作。写这篇博客的目的是发现没有相关博客以举例的方式详细介绍B+树的相关操作,由于自身对某些细节也感到很迷惑,通过查阅相关资料,对B+树的操作有所顿悟,写下这篇博客以做记录。由于是自身对B+树的理解,肯定有考虑不周的情况,或者理解错误的地方,请留言指出。 ...
分类:
其他好文 时间:
2018-04-07 01:17:17
阅读次数:
263
vim的命令太多了,不常用就会忘记,所以我决定把vim的各种命令整理下来,包括vim的插入删除、光标移动、多窗口编辑、复制粘贴、查找替换、以及一些常用命令 删除操作 dd 删除当前行 ndd 删除以当前行开始的n行(包括当前行) dw 删除到单词尾 ndw 从光标处删除到第三个单词尾(不严格区分字段 ...
分类:
系统相关 时间:
2018-04-06 18:33:37
阅读次数:
208
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 解题思路 利用递归的思想,分别从两个链表的头节点开始,比较各自的值,并让新链表的头指针指向值较小的那个头结点。然后把值小的那个链表的头结点抽出,合并两个新链表并让头节点的next指针指向它。若碰到 ...
分类:
编程语言 时间:
2018-04-06 14:01:53
阅读次数:
163
题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 解题思路 定义preNode指向当前结点pNode的前一个节点,每次访问pNode时首先判断它与后面节点是否重复,若 ...
分类:
其他好文 时间:
2018-04-06 12:23:23
阅读次数:
175
MySQL数据库高级(五)——触发器一、触发器简介1、触发器简介触发器是和表关联的特殊的存储过程,可以在插入,删除或修改表中的数据时触发执行,比数据库本身标准的功能有更精细和更复杂的数据控制能力。2、触发器的优点A、安全性可以基于数据库的值使用户具有操作数据库的某种权利。可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据;可以基于数据库中的数据限制用户的操作,例如不允许股票的价格的
分类:
数据库 时间:
2018-04-05 20:08:18
阅读次数:
254
Ctrl+/注释(取消注释)选择的行 Shift + Enter开始新行 Ctrl + Enter智能换行 TAB Shift+TAB缩进/取消缩进所选择的行 Ctrl + Alt + I自动缩进行 Ctrl + Y删除当前插入符所在的行 Ctrl + D 复制当前行、或者选择的块 Ctrl + S ...
分类:
其他好文 时间:
2018-04-02 23:48:18
阅读次数:
216
释放游标是指使用deallocate语句删除游标并释放其占用的所有系统资源。 语法: Deallocate <游标名称> 游标的类型: 1、静态游标(不检测数据行的变化) 2、动态游标(反映所有数据行的改变) 3、仅向前游标(不支持滚动) 4、键集游标(能反映修改,但不能准确反映插入、删除) 游标使 ...
分类:
其他好文 时间:
2018-03-30 15:17:27
阅读次数:
157
SQL语法组成 ? DML( Data Manipulation Language数据操作语言 查询、插入、删除和修改数据库中的数据; SELECT、INSERT、 UPDATE 、DELETE等; ? DCL( Data Control Language数据控制语言) ——用来控制存取许可、存取权 ...
分类:
数据库 时间:
2018-03-24 20:42:56
阅读次数:
240