摘要:
binary search tree (BST) 二分树的基本方法,search,insert,MAX,MIN,delete概念复习下,这道题简单的递归搜索可以解决。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *rig... 阅读全文
摘要:
考虑到自己对基础的掌握还是不够扎实,在重新回炉python之前,我计划用每天一章的速度回炉CS:APP。 1. 信息就是位+上下文: 所有数据在计算机中以位为最小单位存储,包括代码和程序、文件,上下文是对这些位数据的解读方式。 2. 程序被其他程序编译成不同格式、3. 了解编译系统如何工作大有益处: 阅读全文
摘要:
不是很难的题,O(n^2)解决。主要的思路是确定你需要的信息,和状态转移方程。我们需要确定各个行列最大的高度:row[i], column[j],然后取 min(row[i], column[j]) - grid[i][j] 之和就可以了。class Solution {public: int maxIncreaseKeepingSkyline(vector>& grid) { ... 阅读全文
摘要:
上周因为玩耍Minecraft的原因,折腾了下ssh的正向、反向代理,不得不说,科技改变命运。。了解了基础的用法之后,很多跨域的事情都可以通过代理解决,而且只需要ssh帐号权限即可。 那么就简单来介绍下吧,常见的SSH代理介绍文章都会上来先描述场景,例如ABC三个域,怎么样访问之类,看完头就晕了,我 阅读全文
摘要:
git 是一个纯分布式版本控制系统,与本地版本控制系统(类似crs),集中化版本控制器(CVS,subversion)不同。 区别在于他在每台同步机器上都有完整版本库保存(可以离线提交)学习git时,注意不要把以前使用其他版本控制的经验带入了,因为他们的命令很不同,而且,git的实现原理与传统控制系统有很多不同,理解这些实现有利于使用git。git保存每次更新的文件快照,而不是文件变动,如果文件... 阅读全文
摘要:
接上篇文章,在经历很多尝试后,终于发现kt+leveldb有下面无法避免的缺点:1. Leveldb原生只有压缩操作,数据的清理是依赖重复key的,但是kt封装后,会失去这一特性,导致内存无法释放,需要修改leveldb源代码解决。2. kt+leveldb 封装,由于其非原生,不能满足性能需求,KV平均负载在1k/s左右,虽然业务逻辑使他变复杂,但是1k的处理速度不能满足现在的需求。结合上面的考... 阅读全文
摘要:
前段时间在做大数据的KV引擎应用,测试了leveldb的性能,感觉挺好的,美中不足的是他是基于磁盘读写。在我们的场景里,IO频率预计会远远超出磁盘的承受能力,并且太频繁的读取可能也会引发磁盘恶化的速度。 所以考虑再三,决定使用leveldb+memory的形式。 具体的实时方法很简单了,有很多前辈写过leveldb+kt的封装、启动说明。[bluecase:kyoto tycoon + lev... 阅读全文
摘要:
间隔2天,继续开始写LeetCodeOj。 原题: Maximum Subarray 其实这题很早就看了,也知道怎么做,在《编程珠玑》中有提到,求最大连续子序列,其实只需要O(n)的复杂度就可以。 今天早上到公司比较早,就写了一下,发现还是有地方忘了: 1. 记得记录当前的最大值,因为局部最大和全局最大是不同的。 2. 记得描述32位int最大值,最小值的方法,最大值是 0x7FFFFF... 阅读全文