LeetCode 347. Top K Frequent Elements

https://leetcode.com/problems/top-k-frequent-elements/description/ hash map + heap Time complicity: O(N + logk)

 

LeetCode 110. Balanced Binary Tree

https://leetcode.com/problems/balanced-binary-tree/description/

 

LeetCode 128. Longest Consecutive Sequence

https://leetcode.com/problems/longest-consecutive-sequence/description/

 

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

LeetCode 29. Divide Two Integers

Divide two integers without using multiplication, division and mod operator. If it is overflow, return MAX_INT. 思路 边界条件:比如被除数、除数是0,另外结果的正负号要注意。 除法可以用减法实现,不过如果干减的话会很费时间,所以要想想怎么加速。 容易知道,一个数左移一位相当于乘以2。我们可以一次次把除数乘以2试探一下,到底最多能减掉 2^n*除数 多少次,这就相当于做了2^n次除法。由于试探的时候一次次做了乘方,所以试探的次数是log级别的,比原来一个个减要快多了。 代码