04 2014 档案

摘要:递归枚举集合的子集合,当所有元素不相同时,共有2^n个子集合;当有相同元素时,子集合的数目会减少,如果其中一个元素a出现了b次,那么子集合的数目为2^(n-b)*(b+1)个。 阅读全文
posted @ 2014-04-30 22:59 夏目家的猫咪老师 阅读(202) 评论(0) 推荐(0)
摘要:链表反转的简单变形。 阅读全文
posted @ 2014-04-30 20:49 夏目家的猫咪老师 阅读(269) 评论(0) 推荐(0)
摘要:文中用快慢指针详细分析了在有环路的链表上,两个指针会在何时、何地相遇,如何知道相遇点偏离了环路起点多远。 阅读全文
posted @ 2014-04-29 20:17 夏目家的猫咪老师 阅读(344) 评论(0) 推荐(0)
摘要:两种思路,一种递归的解决T(n) = T(n-2) + O(n);另外一种思路,将后一半的链表原地反转,然后再逐个遍历拼接到前一半的链表上。这种做法能够在O(n)的时间复杂度内完成。 阅读全文
posted @ 2014-04-28 23:01 夏目家的猫咪老师 阅读(256) 评论(0) 推荐(0)
摘要:借助堆栈完成迭代形式的后序遍历 阅读全文
posted @ 2014-04-28 21:44 夏目家的猫咪老师 阅读(128) 评论(0) 推荐(0)
摘要:借助堆栈完成迭代形式的先序遍历。 阅读全文
posted @ 2014-04-28 21:34 夏目家的猫咪老师 阅读(225) 评论(0) 推荐(0)
摘要:LRU(Least Recently Used)是经典的页面调度算法,基本思想是将近期刚刚访问的页面放在队尾,最久未被访问的页面放在队头,发生缺页中断时,将队头元素换出,从队尾加入。上述的所有过程都要及时更新,比如访问的页面在内存中,要及时将其放在队尾。频繁地插入与删除操作,使得LRU算法适合用链表实现,为了提高链表的随机访问效率,可以配合map来查找,这样能够将访问(get)与存入(set)操作都在O(log n)的时间复杂度内完成。 阅读全文
posted @ 2014-04-28 15:02 夏目家的猫咪老师 阅读(267) 评论(0) 推荐(0)
摘要:链表形式的插入排序实现。 阅读全文
posted @ 2014-04-28 10:06 夏目家的猫咪老师 阅读(174) 评论(0) 推荐(0)
摘要:归并排序。 阅读全文
posted @ 2014-04-27 19:30 夏目家的猫咪老师 阅读(291) 评论(0) 推荐(0)
摘要:此题AC率不怎么高,可能也是因为边界条件较多。我提交了好多次,例如没有考虑到将系数化为最简形式,没有考虑测试用例中有相同点的情况等。这个题目的有趣之处是在于直线的表示方法,选择哪种形式更合理,比较有特点。 阅读全文
posted @ 2014-04-27 17:03 夏目家的猫咪老师 阅读(186) 评论(0) 推荐(0)
摘要:字符串中单词的翻转问题与字符串中单词的循环移位问题,解决思路都是先局部翻转然后再整体翻转,道理是不言自明的。单词的翻转问题可能容易想到这样做,但是单词的循环移位问题却不那么直观,若不是看别人的解决思路很难这样思考。不过此题的难度其实不是在思路,更多的是对边界条件的考虑,尤其是如果要求在原地址上操作时,难度就会增加。我的解决思路是在原地址上直接翻转移位,代码虽然简短,但是自己也写了好久,还是需要修炼。 阅读全文
posted @ 2014-04-27 14:38 夏目家的猫咪老师 阅读(258) 评论(0) 推荐(0)