- 博客(110)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 字符串相乘(43)
设num1的长度是m,num2的长度是n,multiplyOneNum函数的时间复杂度是O(m), 由于result的长度是m + n,所以add函数的时间复杂度是O(m+n),外面又一层循环n,所以时间的计算复杂度是O(mn) + O(mn + n2),即O(mn + n2)。无论是 multiplyOneNum函数还是add函数最长使用的字符串长度是m+n,所以空间复杂度是O(m+n)。
2025-05-18 21:13:50
223
原创 两数相加(2)
时间计算复杂度O(N),空间计算复杂度O(N),因为要new N 个ListNode,使用dummy node记录head 计算结果的头指针。
2025-05-10 21:01:00
231
原创 无重复字符的最长子串(3)
算法关键,双指针,left和right构成一个window。计算时间复杂度,遍历一遍数组需要O(N)的时间,由于每一个window最多是128个字符(无重复),所以第2个for循环不超过128,所以时间复杂度为O(N)。空间复杂度就是128的数组,常数,所以O(1)。从实现上来看使用hash map 还是数组记录已经扫过的字符,经过比较,在leetcode上实验,数组的计算效率比hash map快1个数量级以上。
2025-05-05 19:07:37
212
原创 Level DB --- MergingIterator
MergingIterator 是 Level DB中重要的类,在某一个level做多个file数据Compaction的时候,这多个file之间数据如何高效的组织和比较,这个时候用到了MergingIterator。
2025-05-05 18:16:28
369
原创 Level DB --- TableCache
TableCache 是Level DB 中重要的类,Level DB 中多层(multi level),且每一层(level)有多个 key-value file,TableCache正是用来缓存多层以及多层中的file数据,更快速地检索。
2025-03-30 21:02:31
217
原创 子集||(90)
计算的时间复杂度O(N2exp(N)),一共有N个数字,每一个数字都会作为头数字计算子集,在子集中每一个数字都会进入子集和不进入子集2个状态。空间复杂度O(N),这里主要用一个N维bool数字记录status,同时递归中栈空间累积最多N层。
2025-03-23 17:35:21
204
原创 Level DB --- WriteLevel0Table
当memtable中的数据达到阈值,内存中的数据要序列化到文件中,WriteLevel0Table正是这个过程的模块。
2025-03-23 17:20:39
264
原创 Level DB --- Compaction后台架构
Level DB的小文件会在后台不断进行Compaction计算,在架构上既要保证数据的安全,同时要保证Compaction计算的效率。
2025-03-19 06:30:00
247
原创 Level DB --- 写流程架构
Level DB是高效的k-v数据库,接受多线程写,既要保证多线程写临界区安全,同时又要保证写流程的尽量高效性。
2025-03-02 14:49:40
338
原创 Level DB --- Table
class Table 是 Level DB核心的几个组件之一,Table里面序列化高效存储了key-value,table是不可变的(immutable),并且持久存储的(persistent)。
2025-02-23 21:26:01
498
原创 合并区间(56)
时间计算复杂度O(NlogN)---sort 排序,空间复杂度O(1),不需要重新构建数组,这里面通过cur_index记录intervals数组的当前填充位置,算法细节见注释。
2025-02-22 20:49:40
195
原创 Level DB --- two_level_iterator
two_level_iterator 是 Level DB 中 table核心的迭代器。该迭代器定义了table对于block的读写操作。
2025-02-16 20:42:55
406
原创 Level DB --- Iterator
Iterator是Level DB中的一个基类,它定义了迭代器的基础的操作,同时对内存资源进行了维护。
2025-02-09 21:20:38
294
原创 全排列(46)
这道题很容易让人想到递归的方法,同时需要回溯。计算的时间复杂度O(N * N!),空间复杂度主要来自递归在栈空间上的使用,因为调用N次,每次使用的占空间固定为O(1),所以空间复杂度是O(N)。
2025-02-04 18:44:08
225
原创 恢复二叉搜索树(99)
算法过程:对于二叉搜索树,它的中序遍历是val递增的序列。对于交换了其中的两个val, 存在2种情况,举一个例子,例如{1, 2, 3, 4, 5, 6, 7, 8},a.交换相邻的两个数字,譬如交换2,3,则序列为{1, 3, 2, 4, 5, 6, 7, 8},存在1个逆序关系(3->2);b.交换不相邻的两个数字,譬如交换2,5,则序列为{1, 5, 3, 4, 2, 6, 7, 8},则存在两个逆序关系(5->3,4->2 )。在代码中predecessor代表遍历的当前节点的前一个节点。
2025-02-02 16:01:51
239
原创 Level DB --- table.format
table.format是Level DB中table序列化、反序列化重要的辅助类。它用来定义序列化、反序列化的核心结构体和操作实现。
2025-02-01 18:38:41
477
请问HBase的thrift客户端支持协处理器吗?
2015-09-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人