随笔分类 -  算法

摘要:假设提供了以下方法: bool GetBlockFromNet(Block *out_block); bool WriteBlockToDisk(Block *in_block); 想实现高效当然是创建两个线程,A负责获取网络数据,B负责写入数据到硬盘,难点在于如何合理分配两个线程之间的工作! 阅读全文
posted @ 2013-10-11 17:17 Linka 阅读(258) 评论(0) 推荐(0)
摘要:问题:由于楼层并不高,在繁忙时段,每次电梯从一层往上走时,我们只允许停到其中某一层。所有乘客再从这层去往自己的目的楼层。 电梯停在哪一层,能够保证乘客爬楼梯之和最少? 阅读全文
posted @ 2013-10-11 16:47 Linka 阅读(450) 评论(0) 推荐(0)
摘要:问题:如何快速计算某个时刻,在X[A,B]区间上的地板被光影划分成多少块? 阅读全文
posted @ 2013-10-11 14:59 Linka 阅读(361) 评论(0) 推荐(0)
摘要:问题:假设一台机器仅保存一个标号为ID的记录,每份数据有两个备份,分别存储到两台机器中。 1.在某个时间,如果得到一个数据文件ID列表,能否快速找出仅出现一次的ID? 2.如果已经知道只有一台机器死机呢?如果有两台机器死机呢? (假设同一数据两个备份不会同时丢失) 阅读全文
posted @ 2013-10-11 13:58 Linka 阅读(253) 评论(0) 推荐(0)
摘要:问题:如果一个二维坐标系中,已知三角形三个点的坐标,那么对于任意一点,如何判断其在三角形内呢?(点在三角形边上也算在三角形内) 阅读全文
posted @ 2013-10-08 20:27 Linka 阅读(550) 评论(0) 推荐(0)
摘要:判断一个单链表是否存在环的解法如下: 1.遍历链表,将链表的节点存入hash表内,若遍历到后面的节点已存在hash表内,说明有环。时间:O(n) 空间:O(n) 2.反转链表,时间:O(n) 空间:O(1),使用3个指针:pNext、pPrev、pCur。这种方法有副作用,就是若存在环的话,无法还原到链表原始状态。(弃用) 3.快慢指针法,时间:O(n) 空间:O(1)。 阅读全文
posted @ 2013-10-07 12:14 Linka 阅读(360) 评论(0) 推荐(0)