分类目录归档:常见问题

B+树学习笔记

不知道你有没有这样的困惑,B+树的资料看了很多,依旧对B+树没有一个具象的认识。我也是这么走过来的,所以希望这篇笔记能帮到你。

一、演化阶段
你或许知道,或许不知道。B+树是由二叉树不断演化过来的。
大致的演化路线如下:
二叉查找树 -> 平衡二叉树 -> B树 -> B+树。

为了说清楚B+说,我们很有必要搞清楚演化过程中每个阶段的特点。
继续阅读

数组不连续取数问题(不连续取糖果)

回想最初遇到这个问题的时候,题面描述如下:

有连续编号的盒子内放着数量不等的糖果,有个强盗来打劫,不允许从两个相邻的盒子中取走糖果,问最多能获取到多少颗糖果。

起初还以为是leetcode上的分糖果问题,其实不一样。后来遇到了leetcode打家劫舍方知是这题,出题人很巧妙的包装了问题。

一、思路:
具象分析这个问题,可以如下表述:
给定一个维数组,长度为N。不允许取连续的两个数,求取到数字的最大和

例:输入:[1,3,5,2,1,9,4,3,7]
答案为:1+5+9+7=22
继续阅读

N盏灯问题

N盏灯问题是个很有意思的问题,是一个数学题,也是一个编程题。

这个问题,有很多不同的叫法
0、N个人开关N盏灯问题
1、开关灯问题

一、问题描述:
有N盏灯放在一排,从1到N依次顺序编号。有N个人,也从1到N顺序编号。1号将灯全部关闭,2号将凡是2的倍数的灯全部打开;3号将3的倍数的灯全部作相反操作(该灯如为打开,则将它关闭;如关闭,则将灯打开)。以后的人,都和3号操作一样,将凡是自己序号倍数的灯作相反操作。第N个人操作完之后,一共有几盏灯亮着?

二、问题分析
灯编号: 1->N
人编号: 1->N
开始灯都关着
灯 % 人 == 0 按一次开关
第N个人操作后,亮个的灯的个数
继续阅读