自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 整数反转(7)

计算时间复杂度O(log x),即x的位数;空间复杂度O(1).

2025-05-25 15:45:40 212

原创 字符串相乘(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

原创 回文数(9)

计算时间复杂度O(N),计算的空间复杂度O(N),借助了一个长度为N的string。

2025-05-10 21:06:36 190

原创 两数相加(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

原创 有效的括号(20)

计算时间复杂度O(N),空间复杂度O(N)(使用了stack)。

2025-05-05 15:00:04 166

原创 字符串转换整数(atoi)(8)

计算时间复杂度O(N),N是字符串的长度;空间复杂度O(1)。

2025-05-01 20:40:57 188

原创 最长公共前缀(14)

计算时间复杂度O(MN),其中M是strs的长度,N是每个字符串所含字符的长度;空间复杂度O(1),只需要常数的空间。

2025-05-01 20:09:14 231

原创 Level DB --- TableCache

TableCache 是Level DB 中重要的类,Level DB 中多层(multi level),且每一层(level)有多个 key-value file,TableCache正是用来缓存多层以及多层中的file数据,更快速地检索。

2025-03-30 21:02:31 217

原创 买卖股票的最佳时机(121)

计算时间复杂度O(N),空间复杂度O(1)。

2025-03-29 20:31:36 256

原创 将有序数组转换为二叉搜索树(108)

计算时间复杂度O(N),空间复杂度O(N)。

2025-03-29 20:00:45 165

原创 子集||(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

原创 二叉树的层序遍历||(107)

计算时间复杂度O(N),空间复杂度O(N)。

2025-03-22 19:43:51 224

原创 Level DB --- Compaction后台架构

Level DB的小文件会在后台不断进行Compaction计算,在架构上既要保证数据的安全,同时要保证Compaction计算的效率。

2025-03-19 06:30:00 247

原创 删除有序数组中的重复项(26)

计算时间复杂度O(N),空间复杂度O(1),

2025-03-15 21:15:55 276

原创 二叉树的层序遍历(102)

总结:计算时间复杂度O(N),空间复杂度O(N)。

2025-03-15 19:52:15 167

原创 Level DB --- 写流程计算

写流程架构已经介绍,写流程计算包括写日志,和将kv插入到memtable中。

2025-03-09 20:28:52 218

原创 子集(78)

计算时间复杂度O(N*2expN),空间复杂度O(N),

2025-03-08 21:56:26 262

原创 平衡二叉树(110)

计算时间复杂度O(N),空间复杂度O(N),

2025-03-08 21:47:22 217

原创 Level DB --- 写流程架构

Level DB是高效的k-v数据库,接受多线程写,既要保证多线程写临界区安全,同时又要保证写流程的尽量高效性。

2025-03-02 14:49:40 338

原创 杨辉三角2(119)

【代码】杨辉三角2(119)

2025-03-02 10:25:31 135

原创 只出现一次的数字(136)

计算复杂度O(N),空间复杂度O(1).

2025-03-01 19:47:42 149

原创 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

原创 接雨水(42)

计算时间复杂度O(N),空间复杂度O(N),这是一个dp的算法题,详情请看注释。

2025-02-22 19:38:36 186

原创 Level DB --- two_level_iterator

two_level_iterator 是 Level DB 中 table核心的迭代器。该迭代器定义了table对于block的读写操作。

2025-02-16 20:42:55 406

原创 反转链表2(92)

【代码】反转链表2(92)

2025-02-15 18:36:59 174 1

原创 反转链表(206)

计算时间复杂度O(N),空间复杂度O(1)

2025-02-15 15:50:11 228

原创 最大子数组和(53)

总结:计算时间复杂度O(N),空间复杂度O(1),

2025-02-15 14:53:05 117

原创 Level DB --- Iterator

Iterator是Level DB中的一个基类,它定义了迭代器的基础的操作,同时对内存资源进行了维护。

2025-02-09 21:20:38 294

原创 汇总区间(228)

计算时间复杂度O(N),空间复杂度O(1)。

2025-02-09 19:34:14 228

原创 全排列(46)

这道题很容易让人想到递归的方法,同时需要回溯。计算的时间复杂度O(N * N!),空间复杂度主要来自递归在栈空间上的使用,因为调用N次,每次使用的占空间固定为O(1),所以空间复杂度是O(N)。

2025-02-04 18:44:08 225

原创 搜索插入位置(35)

计算时间复杂度O(N),空间复杂度O(1)。

2025-02-03 19:42:05 303

原创 恢复二叉搜索树(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

原创 三角形的最大周长(976)

计算的时间复杂度O(NlogN),空间复杂度O(1),,都是三数之和相关的问题。

2025-02-02 15:32:53 214

原创 三数之和(15)

计算的时间复杂度O(n2),空间复杂度O(1),

2025-02-02 15:27:55 227

原创 Level DB --- table.format

table.format是Level DB中table序列化、反序列化重要的辅助类。它用来定义序列化、反序列化的核心结构体和操作实现。

2025-02-01 18:38:41 477

原创 验证二叉搜索数(98)

计算时间复杂度O(N),其空间复杂度O(N),具体算法如上述代码和注释。

2025-01-31 18:43:12 185

Qt程序设计教程

Qt程序设计的简略教程,快速了解Qt哦!

2013-05-01

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除