Durant Thorvald's Blog

来自UCLA的一枚致力于改变世界的背包极客

全手写实现红黑树

"Pair as key of unordered_map"

一提到红黑树,你应该是这样想的。。。 上一期我们详细分析了AVL树,相信你已经对二叉平衡树有了非常棒的理解。这一期我们开始介绍红黑树,红黑树在网上有很多资源,但是讲的不严谨,也不全面。笔者初学时也浪费了许多时间,因此我将非常细致的讲解,将自己踩过的坑晒出来,保证你能看懂。 红黑树和AVL树的区别是:AVL树是严格平衡的二叉树,红黑树是弱平衡的二叉树。和红黑树相比,AVL树是严格的平衡...

机器学习I 基本概念

"Fundamental Concepts of Machine Learning"

学完算法,还想更深入一步,那么接触一下机器学习,是很有必要的,你需要知道当下为什么ML这么火,包括自动驾驶,人脸识别等都与之相关。有些甚至基本算法理论无法解释。 参考周志华《机器学习》 任务: 分类(classification): 预测离散值。 回归(regression):预测连续值。 一般地,我们对训练集${(x_1,y_1),·...

线段树和树状数组

"Fenwick Tree & SegmentTree"

“树状数组和线段树都是用于维护数列信息的数据结构,支持单点/区间修改,单点/区间询问信息。以增加权值与询问区间权值和为例,其余的信息需要维护也都类似。时间复杂度均为O(logn)。 ” I. 树状数组 Fenwick Tree 跳过废话,直接看技术实现,对应LC315 地中海的程序猿们研究数组,时候遇到这样一个问题: 有一个数组从,现在要在 的时间复杂度内,搜索一个确定的值...