摘要:
A:为什么MySQL数据库要用B+树存储索引? Hash的查找速度为O(1),而树的查找速度为O(log2n),为什么不用Hash作为数据库的存储索引呢? 树的话,无非就是前中后序遍历、二叉树、二叉搜索树、平衡二叉树,更高级一点的有红黑树、B树、B+树。 【红黑树】 红黑树也是平衡树中的一种,它复杂 阅读全文
摘要:
题解1 - 左右分治 根据题意,有 result[i]=left[i]⋅right[i], 其中 left[i]=∏j(从左到右累乘), right[i]=∏j(从右到左累乘). 即将最后的乘积分为两部分求解,首先求得左半部分的值,然后求得右半部分的值。最后将左右两半部分乘起来即为解。 C++: 源 阅读全文
摘要:
首先可以想到逐步移位,但是这种方法显然太浪费时间,不可取。下面介绍利器『三步翻转法』,以[4, 5, 1, 2, 3]为例。 由以上3个步骤可知其核心为『翻转』的in-place实现。使用两个指针,一个指头,一个指尾,使用for循环移位交换即可 JAVA: C++: 源码分析 首先找到分割点,随后分 阅读全文
摘要:
题 Zero Sum Subarray | Data Structure and Algorithm 的变形题,由于要求的子串和不一定,故哈希表的方法不再适用,使用解法4 - 排序即可在 O(nlogn) 内解决。具体步骤如下: C++: 源码分析 为避免对单个子串和是否为最小情形的单独考虑,我们可 阅读全文
摘要:
题解1 - 哈希表 题 Zero Sum Subarray | Data Structure and Algorithm 的升级版,这道题求子串和为 K 的索引。首先我们可以考虑使用时间复杂度相对较低的哈希表解决。前一道题的核心约束条件为 f(i1)−f(i2)=0,这道题则变为 f(i1)−f(i 阅读全文
摘要:
最近下载了一个 Office 2016 专业版 使用,发现 word 无法使用 Ctrl + V 粘贴东西,由于经常需要复制粘贴东西,无法粘贴影响很大 查了很多资料,尝试过很多的方法,终于发现问题的所在,Office 2016 自带了 MathType,由于加载了这个,导致粘贴会出现一些问题 试过在 阅读全文
摘要:
如果想查看 Mysql 数据库的总的数据量或者某个表的数据或者索引大小,可以使用系统库 information_schema 来查询,这个系统库中有一个 TABLES 表,这个表是用来记录数据库中表的大小、行数、索引大小等信息 表结构如下: sql: 这个表的字段很多,常用的字段有下面几个: TAB 阅读全文
摘要:
题解1 - 两重 for 循环 题目中仅要求返回一个子串(连续)中和为0的索引,而不必返回所有可能满足题意的解。最简单的想法是遍历所有子串,判断其和是否为0,使用两重循环即可搞定,最坏情况下时间复杂度为 O(n^2), 这种方法显然是极其低效的,极有可能会出现 TLE. 下面就不浪费篇幅贴代码了。 阅读全文
摘要:
问题:Linux在 Vi/Vim 在编辑文件时遇到一个问题,当我在 Insert 模式下进行修改文件内容的时候,用到了键盘(104键,右边带数字键那种)进行数字输入,当我输入数字 “5” 时,插入的数字不是 “5” ,而是变成了 “u” 解决方案: 1、打开 XShell ,在所有会话中,选择你的服 阅读全文
摘要:
题解 题目大意是找第 n 个数(字符串表示),规则则是对于连续字符串,表示为重复次数+数本身。 后一个数等于前一个数的计数(字符串表示),有点类似斐波那契数列 JAVA: 源码分析 字符串是动态生成的,故使用 StringBuilder 更为合适。注意s 初始化为"1", 第一重 for循环中注意循 阅读全文