摘要: 这道题中要求时间复杂度为O(n),首先我们可以知道的是,如果先对数组排序再计算其最长连续序列的时间复杂度是O(nlogn),所以不能用排序的方法。我一开始想是不是应该用动态规划来解,发现其并不符合动态规划的特征。最后采用类似于LRU_Cache中出现的数据结构(集快速查询和顺序遍历两大优点于一身)来... 阅读全文
posted @ 2014-04-27 13:44 echoht 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 这道题也很简单,只要把二叉树按照宽度优先的策略遍历一遍,就可以解决问题,采用递归方法越是简单。下面是AC代码: 1 /** 2 * Sum Root to Leaf Numbers 3 * 采用递归的方法,宽度遍历 4 */ 5 int result=0; 6... 阅读全文
posted @ 2014-04-27 13:36 echoht 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 我觉得这道题和传统的用动规或者贪心等算法的题目不同。按照题目的意思,就是将被‘X’围绕的‘O’区域找出来,然后覆盖成‘X’。那问题就变成两个子问题:1. 找到‘O’区域,可能有多个区域,每个区域‘O’都是相连的;2. 判断‘O’区域是否是被‘X’包围。我采用树的宽度遍历的方法,找到每一个‘O’区域,... 阅读全文
posted @ 2014-04-27 13:33 echoht 阅读(191) 评论(0) 推荐(0) 编辑