并查集(Union-find Data Structure)是一种树型的数据结构。它的特点是由子结点找到父亲结点,用于处理一些不交集(Disjoint Sets)的合并及查……
阅读全文
groupcache 是 memcached 作者 Brad Fitzpatrick 用 Go 语言编写的缓存及缓存过滤库,作为 memcached 许多场景下的替代版本。 groupcache并不运行在单独的server上,而是作为library和app运行……
阅读全文
Go 语言是静态类型的,每个变量在编译期有且只能有一个确定的、已知的类型,即变量的静态类型。静态类型在变量声明的时候就已经确定了,无法修改。 那么为什么我们还需要反射……
阅读全文
前缀和可以简单理解为「数列的前 n 项的和」,是一种重要的预处理方式,能大大降低查询的时间复杂度。 初级练习 左右元素和的差值 思路 思路简单,使用前缀和,不过需要左右两边……
阅读全文
最近工作开始转向使用python,因此更加深入的学习一下,通过阅读开源库学习python的使用。这一期学习使用requests库,这个是一个很漂亮的http包,……
阅读全文
最近工作原因开始转向写python,发现之前学习的python还是很肤浅,真到用时还是发现很多奇奇怪怪的语法设定,这里记录一下python的学习路径,将学习资料……
阅读全文
图相关的算法练习,需要掌握图的基本数据结构,图的连通性,图的遍历,最短路径,最小生成树等问题。 初级练习 找到小镇的法官 思路 思路很简单,基于图的度,由于法官不信任其……
阅读全文
贪心算法没有固定的模板,基本思路是找到问题的一个切入点,虽然证明这个解法是最优的。 初级练习 拆分数位后四位数字的最小和 思路 这题很简单,数据只有4个数,组合就3种,……
阅读全文
初级练习 下一个更大元素 I 思路 最基础的单调栈用法。 代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 func nextGreaterElement(nums1, nums2 []int) []int { mp := map[int]int{} stack := []int{} for i := len(nums2) - 1; i >= 0; i-- { num := nums2[i] for len(stack) > 0 && num >=……
阅读全文
滑动窗口,这个算法思路非常简单,就是维护一个窗口,不断滑动,然后更新答案。 初级练习 学生分数的最小差值 思路 因为可以任意选k名学生,因此我们排序后,使用滑动窗口,维……
阅读全文