上一页 1 2 3 4 5 6 7 ··· 19 下一页
摘要: 是什么 用于产生随机数。 C语言中伪随机数生成算法实际上是采用了“线性同余法”,具体计算如下: seed = (seed * A + C ) % M 其中A,C,M都是常数(一般取质数),当C=0时,叫作乘同余法。 为什么要用 为什么不用系统随机数? 学到什么 可以将长的二进制整数分解为多个段来解决 阅读全文
posted @ 2020-06-14 16:10 Galaxy_hao 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 是什么 leveldb内部实现的缓存 为什么要用 性能高于内嵌哈希表 学到什么 与(&)操作进行模运算 减少cache锁操作,可以分为多组cache 源码分析 LRUHandle 缓存中代表键值对的数据结构 // An entry is a variable length heap-allocate 阅读全文
posted @ 2020-06-14 08:26 Galaxy_hao 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 题目 编写一个函数,检查输入的链表是否是回文的。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 思路 利用栈来逆序判断。 代码 时间复杂度:O(n) 空间复杂度:O(n) class Solution { public: bool is 阅读全文
posted @ 2020-06-13 18:13 Galaxy_hao 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目 给定两个用链表表示的整数,每个节点包含一个数位。 这些数位是反向存放的,也就是个位排在链表首部。 编写函数对这两个整数求和,并用链表形式返回结果。 示例: 输入:(7 -> 1 -> 6) + (5 -> 9 -> 2),即617 + 295 输出:2 -> 1 -> 9,即912 进阶:假设 阅读全文
posted @ 2020-06-12 18:49 Galaxy_hao 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题目 编写程序以 x 为基准分割链表,使得所有小于 x 的节点排在大于或等于 x 的节点之前。如果链表中包含 x,x 只需出现在小于 x 的元素之后(如下所示)。分割元素 x 只需处于“右半部分”即可,其不需要被置于左右两部分之间。 示例: 输入: head = 3->5->8->5->10->2- 阅读全文
posted @ 2020-06-11 20:39 Galaxy_hao 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 题目 实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。 示例: 输入:单向链表a->b->c->d->e->f中的节点c 结果:不返回任何数据,但该链表变为a->b->d->e->f 思路 简单换值法。 代码 时间复杂度:O(1) 空间复杂度:O(1) 阅读全文
posted @ 2020-06-10 19:19 Galaxy_hao 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 题目 实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。 注意:本题相对原题稍作改动 示例: 输入: 1->2->3->4->5 和 k = 2 输出: 4 说明:给定的 k 保证是有效的。 思路:快慢指针 代码 时间复杂度:O(n) 空间复杂度:O(1) class Solution 阅读全文
posted @ 2020-06-09 20:17 Galaxy_hao 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 是什么 是一种哈希函数,采用的是MurMurHash的一种变体,是一种高效低碰撞的非加密型哈希函数。 为什么要用 具有较高的平衡性与低碰撞率 学到什么 对于大块数据,可以分多个小的部分进行哈希计算 源码分析 主要就一个hash接口 uint32_t Hash(const char *data, si 阅读全文
posted @ 2020-06-09 13:47 Galaxy_hao 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 是什么 内存分配管理器,主要为skiplist即Memtable服务而不是整个项目。申请内存时,将申请到的内存直接放入vector中,在Arena的生命周期结束后,统一释放掉所有申请的内存,内部结构如下图: 为什么要用 避免内存碎片,skiplist里面记录的都是用户传进来的key/value,这些 阅读全文
posted @ 2020-06-09 08:54 Galaxy_hao 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 示例1: 输入:[1, 2, 3, 3, 2, 1] 输出:[1, 2, 3] 示例2: 输入:[1, 1, 1, 1, 2] 输出:[1, 2] 提示: 链表长度在[0, 20000]范围内。 链表元素在[0, 20000]范围内 阅读全文
posted @ 2020-06-08 22:10 Galaxy_hao 阅读(168) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 19 下一页