OJ Tricks
这里主要是一些题目的技巧总结。
min max heap usage
如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值
排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之
后中间两个数的平均值。
一个大堆,一个小堆,保证 大堆的头永远比小堆的头最小,并且两者数量接近(差一,或者相
等)保存4个变量,两个堆的数量,以及堆的顶值,
min_size, max_size, min_top. max_top
当获得一个新的数,如果小于 min_top, 就放进 max_heap
中,但是可以判断一下和 max_top 的大小,这样可以更新它
然后在做判断, 是否 max_size > min_size,
是的话,就把 max_top 放入 min_heap 中,它当然是最小的,所以可以更新
这时候,我们再更新, max_size, min_size, 这样即可保证两者数量接近
并且俩个堆也一定是连续的
max_top| |min_top 两者构成的区间,在不停的移动~~ 两堆数量相近
DP
DP 很重要的思想在于,从 N -> N+1 或者能从 N -> N-1 ,另外 DP 代表的就是计算机思维,这是非常重要的,计算机的思维也是迭代的思维,这种思想其实非常的重要,我们永远都不会去寻找一个精确值,而是不断的从上一次值来推出下一个更加合适的值~
Last updated