精选分类

文章列表

【论文阅读分享】Spooky: Granulating LSM-Tree Compactions Correctly一.研究背景现代kv存储引擎许多都依赖于LSM-tree(日志结构合并树) 作为其核心数据结构。 LSM-tree的一个关键设计维度是其合并粒度。一些设计采用全量合并(Full Merge)的方式,即一次性压缩整个Level的所有数据。其他设计采用部分合并(Partial Merge)的方式,即独立地压缩具有重叠key范围的较小file group。 本文发现这两种传统的策略都存在严重缺陷。Full...

博客迁移记录一.前言大二的时候,同样是王老师的设计思维课上,有一个类似的作业是组队用hugo做一个GitHub静态网页,那时候除了组队的作业也单独建了一个自己的blog,也是hugo做的用的pacman模板。大三大四时会把一些作业心得和刷LeetCode的过程记录上去,偶尔也把看过的论文解读放在博客上。 为什么不直接把原来的博客链接放上?因为当时用的hugo...

RAMBO源码解读一.从main函数的测试分支开始没有下完整数据包,这里用test分支的toy test文件,用data/ArtfcKmersToy100.txt作为测试数据,主要部分在以下几个函数 RAMBO myRambo(n_perSet, R_all, B_all, K); 创建Rambo结构 myRambo.createMetaRambo (K, false); 初始化meta数据 myRambo.insertion2 (alllines); 插入数据 myRambo.query(testKeys[i], testKeys[i].size());...

1.题干及思路给定两个字符串 s 和 t 。返回 s 中包含 t 的所有字符的最短子字符串。如果 s 中不存在符合条件的子字符串,则返回空字符串 "" 。 如果 s 中存在多个符合条件的子字符串,返回任意一个。 注意: 对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。 示例 1: 输入:s = "ADOBECODEBANC", t = "ABC" 输出:"BANC" 解释:最短子字符串...

一.剑指 Offer II 016. 不含重复字符的最长子字符串1.题干及思路给定一个字符串 s ,请你找出其中不含有重复字符的 最长连续子字符串 的长度。 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子字符串是 "abc",所以其长度为 3。 示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子字符串是 "b",所以其长度为 1。 示例 3: 输入: s =...

一.剑指 Offer II 015. 字符串中的所有变位词1.题干及思路给定两个字符串 s 和 p,找到 s 中所有 p 的 变位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 变位词 指字母相同,但排列不同的字符串。 示例 1: 输入: s = "cbaebabacd", p = "abc" 输出: [0,6] 解释: 起始索引等于 0 的子串是 "cba", 它是 "abc" 的变位词。 起始索引等于 6 的子串是...

一.剑指 Offer II 014. 字符串中的变位词1.题干及思路给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的某个变位词。 换句话说,第一个字符串的排列之一是第二个字符串的 子串 。 示例 1: 输入: s1 = "ab" s2 = "eidbaooo" 输出: True 解释: s2 包含 s1 的排列之一 ("ba"). 示例 2: 输入: s1= "ab" s2 =...

一.剑指 Offer II 013. 二维子矩阵的和1.题干及思路给定一个二维矩阵 matrix,以下类型的多个请求: 计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。 实现 NumMatrix 类: NumMatrix(int[][] matrix) 给定整数矩阵 matrix 进行初始化 int sumRegion(int row1, int col1, int row2, int col2) 返回左上角 (row1, col1) 、右下角 (row2, col2) 的子矩阵的元素总和。 示例...

一.剑指 Offer II 012. 左右两边子数组的和相等1.题干及思路给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。 如果数组有多个中心下标,应该返回 最靠近左边 的那一个。如果数组不存在中心下标,返回 -1 。 示例 1: 输入:nums = [1,7,3,6,5,6] 输出:3 解释: 中心下标是 3 。 左侧数之和 sum = nums[0] + nums[1] +...

一.剑指 Offer II 011. 0 和 1 个数相同的子数组1.题干及思路给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。 示例 1: 输入: nums = [0,1] 输出: 2 说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。 示例 2: 输入: nums = [0,1,0] 输出: 2 说明: [0, 1] (或 [1, 0]) 是具有相同数量 0 和 1 的最长连续子数组。 提示: 1 <= nums.length <= 105 nums[i] 不是 0 就是...