1. egg 使用 curl 上传 buffer 时修改文件名

    最近在折腾企业微信机器人的时候遇到了点问题,记录一下。

    2021/02/02 node egg

  2. leetcode 编辑距离

    暴力的方法是使用递归一层一层计算所有的路径,这个一定会超时。使用动态规划将其转化为多个子问题,可以完美解决

    2020/09/18 dynamic-programming algorithm

  3. leetcode 最长有效括号

    需要在每一个右括号处判断是否有可以闭合的左括号

    2020/05/12 dynamic-programming algorithm

  4. leetcode 三数之和

    和之前的最接近三数之和的解法差不多,多了重复值的判断

    2020/05/05 two-pointers algorithm

  5. leetcode 下一个排列

    需要找出当前数组的排排列,使用了字典序法。 假设数组有n个元素,找出从右往左满足第 arr[i] > arr[i+1] 的元素 从 i+1 往后找到比 i+1 大的最小值 j。 交换 i, j 把 i 右边的元素做一个倒序。

    2020/04/25 algorithm

  6. leetcode 串联所有单词的子串

    这一题一开始我是想直接将单词的所有排列组合列出来,再进行匹配,结果很明显就超时了。 改成换成取字符串,因为单词的长度都是一样的,可以分割成和 words 里一样的数组,将words转成对象,value 是出现的次数,然后遍历 keys,减去字符串里出现的单词,如果最后所有的 key 都是 0,则将当前的索引加入结果。运行后的时间复杂度太大,虽然是 ac 了。 后来看题解好像可以使用滑动窗口的方式优化,运行速度马上就上去了 合并 串联所有单词的子串

    2020/04/20 algorithm

  7. leetcode 合并 K 个有序链表

    合并 k 个有序链表我用了两种方法去解题,一种是每次都遍历 k 个链表的头结点,找出里面的最小值,然后放在一个新的链表里,这种方法比较耗时,每次需要 O(kN) 的时间复杂度。另一种是使用分治的方式,像归并一样两两合并,这样每合完一次就会减小 1/2K 次循环,最终只用 log2K 的时间复杂度。 合并 k个有序链表

    2020/04/13 mergeSort algorithm

  8. 正则笔记

    贪婪与非贪婪

    2020/04/05 regexp example