liuqinh2s' blog

Do something cool!

其实这个问题我早就发现了,但一直没太在意,今天写博客的时候又看到这个难看的引号,终于忍不住想看看到底出了什么问题。

首先我试了中文的单引号和英文的单引号,发现渲染效果都一样,然后想看看当我分别打中文单引号和英文单引号的时候,hexo 的渲染结果到底是不是一样。

打开 chrome 开发工具,发现页面上的英文单引号统一被渲染成了中文的单引号。

然后我手动修改页面看了下英文单引号是什么样子,发现样式确实很不一样。

那么问题就确定了:hexo 把英文引号渲染成了中文引号。

阅读全文 »

介绍

动态数组在每次容量用尽时,重新申请 2 倍于当前数组的空间,并将原数组中的内容拷贝到新的空间,然后释放原数组的内存空间。对于动态数组,每次插入的花费有两种情况:

  1. 容量够用,我们只需要存储新的元素
  2. 容量不够用,创建新的空间,拷贝原数组进新的空间,再存储这个新的元素

分析方法有许多,统称为:amortized analysis(分摊分析)

阅读全文 »

快速排序算法是一个原理非常简单易懂的算法,但如果现场手写的话又有多少人能写得出来呢?我今天又试了一下,发现还是存在一些认知上的问题。首先我明白快排的核心操作是:选取一个中枢,然后把小于中枢的放到左边,大于中枢的放到右边。但我发现时隔仅仅一年多,我居然已经忘了这个操作的英文名字了。直到我在写这篇文章的时候才突然想起来:partition 操作。

在使用 partition 操作的前提下,递归解决问题就 OK 了。

阅读全文 »

并查集

什么是并查集

并查集的核心是parent指针,一个结点可以找到自己所属的结点。从而把结点归类。有两个核心操作:

  • Union(用来合并两个并查集)
  • Find(用于查找一个结点的parent

所以并查集可以叫做:union-find data structure。

阅读全文 »
0%