雪崩下的雪花都是无辜的吗

好久没有写东西了,感觉这年头写这些东西也不值钱;另外,好像大家都不在意这些相较传统的表达了,更倾向于那种刺激性更强更爽的热点,以致于要一直加强刺激才能找到快感。但是我个人又比较啰嗦,想表达,还想找到能更好的表达方式,老了可以写作为生。

好了,闲话少叙,切入正题。发生雪崩了,我觉得当然是没有一片雪花是无辜的。没有一片雪花的下坠,是不会发生雪崩的。以此类推,我们可以发现更多的事情中,每个个体应该承担的责任。

继续阅读“雪崩下的雪花都是无辜的吗”

Trie 的简易版 js 实现

Trie 能解决什么问题?

假设我们有一个数组:['tiger', 'monkey', 'elephant', 'dog'],我们想要查找里面有没有 dog,最简单的方法是遍历数组,如果要查 10000 次,则遍历数组的次数是 1w * 4 = 4w;如果我们用 trie 来解决这个问题,则会大大的提升我们的速度。构建 trie 的遍历次数是 5 + 6 + 7 + 3 = 21,再查询 10000 次,则是 10000 * 3 + 21 = 30021。很明显,查询次数越多,trie 的性能优势就越明显。

上面的计算可能并不专业,仅供参考。

继续阅读“Trie 的简易版 js 实现”

线段树的 js 实现

Segment tree 可以用来解决一些区间的问题。比如说有 100 个元素的整数数组,想要求其中索引位置在 a - b 之间所有数字的和,那怎么求呢?一种方式是遍历,从 a 到 b,这样的时间复杂度是 O(n) 级别的;第二种是使用线段树,则可以把时间复杂度优化到 O(logn)。

继续阅读“线段树的 js 实现”