LeetCode 222. Count Complete Tree Nodes

https://leetcode.com/problems/count-complete-tree-nodes/description/ 简单的二分法分治,探测(子)树的左右侧是否相等即可。 (下面代码没实现)想要更快的话,其实自从第一次算出左侧的深度后,后面的左测深度直接可以通过减法求出,不用再去探测一次了。

 

No core will be dumped when calling exit() in a signal handler

The customized abnormal signal handler (e.g. SIGSEGV handler) will function abnormally if we call exit() inside the handler: the program will exit “as normal” however it did had some severe memory issue. See code snippet below, try to run with / without “X” argument.

Output:

   

LeetCode 76. Minimum Window Substring

76. Minimum Window Substring 思路: 构造一个哈希表结构统计我们的需求,也就是字符串t中每个字符的数量,方便起见如果有需求则哈希表的对应值-1。另外存储一下当前解的起始位置START以及最优解的位置。 扫描字符串s,在位置s[i]时如果能够满足需求(即哈希表中没有负值),则从START开始清除无用的字符直至无法满足需求位置。比如需求是A:1, B:2,START开始的字符是DEFBAB,则清除DEF。清除完成后更新START值并跟当前已知的最优解比较,更新最优解。 啰嗦一句,似乎相当一部分substring类型的题目都能用hash table + two pointers的方式解决。

 

LeetCode 432. All O`one Data Structure

几万年没做LeetCode的题了,更新一下。 https://leetcode.com/problems/all-oone-data-structure/description/ 这道题的思路是用一个双向链表(list)来存储一个以value排序的数据结构,使用哈希表(unordered_map)来存储key到链表iterator的映射: 需要注意特殊处理value=1的Node的情况。 代码写得比较毛糙,但是确实是O(1)的复杂度,如果要优化的话map的插入可以用emplace()之类的。 注意:除了value=1的节点,其余节点的keys为空的时候要把该节点删除掉,否则getMaxKey()和getMinKey()就需要O(n)的遍历操作了。

     

Boost up your ShadowSocks server with BBR

在尝试各种SS优化之后,我发现唯一对我服务器有用的是Google的BBR——一个TCP拥塞控制算法。 具体的一些评价,可以参考知乎的问题《Linux Kernel 4.9 中的 BBR 算法与之前的 TCP 拥塞控制相比有什么优势?》 Ubuntu下的简单部署: 确认一下你的内核版本

如果返回的是>=4.9的版本,那么直接跳到第4步 下载内核安装包。最新版的内核可以去http://kernel.ubuntu.com/~kernel-ppa/mainline/ 查看,这边下载的是4.13版

安装新的内核(确保你有sudo权限)

然后删除系统里原来的内核,首先确认一下删除的版本,运行这个命令找到旧版本的内核

删掉

别忘了更新grub,不然引导不来了

配置sysctl启用BBR 编辑 /etc/sysctl.conf , 在文件末尾加上下面两行

然后键入 sysctl -p 令配置生效     参考: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/commit/?id=0f8782ea14974ce992618b55f0c041ef43ed0b78 https://www.zxavier.com/shadowsocks%E4%BC%98%E5%8C%96.html

Spring 2018

春节到了,好久没有更新博客。 最近都在忙着工作的事情,总算是要步入正轨了,新的一年还有很多东西要搞,希望自己能尽全力而为。 最开心的事情是两天前跟妹子求了个婚,花销虽然有点大,不过还是值得的。杭州柏悦的服务还是不错的,虽然最后弄得一团糟被收了清洁费,也是很值得。发现当一切都安排妥当之后,会有一种莫名的淡定,哈哈。 狗年即将发生很多更奇妙的事情, 只能说要自己加油再加油。在老家书柜里看到了巴金的《家》《春》《秋》三部曲,感觉可以带一本去上海,都是1970年代出版的老书,那时候一本书才一块多钱。 今年的目标是: 工作上,要拿到涨薪和对得起自己的bonus 学习上,年初把统计和机器学习再学习一下,有深深的预感不久的将来会用到大把 生活上,争取去更多的地方玩  

病了一场

昨晚上怕冷怕的要死,盖了被子还觉得冷 早上睡醒又热的要命,感觉人要烧起来了 请了个病假,医院折腾一天,现在仍旧腰酸背疼加头痛 还是身体最要紧,不然什么事情都做不了