进阶之路

首页 新随笔 管理
上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页

2014年8月31日 #

摘要: 一:实习 二. 数组类 三、链表类 四、图类 五、哈希 阅读全文
posted @ 2014-08-31 14:21 进阶之路 阅读(290) 评论(0) 推荐(0) 编辑

2014年8月27日 #

摘要: 思想: 动态规划,分析: 12121212: 前面为1 或者 (前面是2 且 当前值 1。 阅读全文
posted @ 2014-08-27 20:49 进阶之路 阅读(158) 评论(0) 推荐(0) 编辑

摘要: 思想:因为 A 很大, 所以从最大值开始插入, 即从 A 的 m+n 位置开始插入数据。避免了冗余的移动。 思想: 1. 由于要 O(1) 时间确定某 key 是不是在 Cache 中,所以用 Hash_map (), 从而能够O(1)找到结点地址,返回对应的 value。 2. 由于要 O(1) 时间插入、删除某项, 所以各项之间的存储不能用单链表(删除时要O(n)查找前面的结点),不能用顺序表(插入、删除都 O(n)), 故存储使用双链表。 综上分析,查找、插入、删除都是 O(1)时间。(代码尚可优化) 阅读全文
posted @ 2014-08-27 20:12 进阶之路 阅读(141) 评论(0) 推荐(0) 编辑

摘要: 思想: 顺序读,取前面的每个子集,把该位置数放后面作为新的子集。 思想: 排序后,按照 1 的方法。但是若前面的数字与本数字相同,则只读取含有前面数字的每个子集,把自身放在后面作为一个新的子集。 阅读全文
posted @ 2014-08-27 19:49 进阶之路 阅读(178) 评论(0) 推荐(0) 编辑

摘要: 思路: f(n) = Σi=1n f(n-i)*f(i-1), 其中 f(0) = f(1) = 1; 利用动归记下之前的 f(2)~f(n-1)即可。 思路:分别以 1~n 为根节点,左右子树根的集合数量相乘,递归,依次得出结果。 阅读全文
posted @ 2014-08-27 19:39 进阶之路 阅读(251) 评论(0) 推荐(0) 编辑

摘要: 思想: 动态规划。 DP[i][j] = (DP[i-1][j] && s1[i-1] == s3[i+j-1]) || (DP[i][j-1] && s2[j-1] == s3[i+j-1]); 其中,i, j 分别为字符串 s1, s2 的当前长度。 方法二: 进一步优化,空间复杂度, O(min(s1.size(), s2.size())); 阅读全文
posted @ 2014-08-27 19:24 进阶之路 阅读(172) 评论(0) 推荐(0) 编辑

摘要: 思想: Morris traversal. Solution 1 : Preorder traversal Solution 2: Inorder traversal. Solution 3: Morris Traversal. 阅读全文
posted @ 2014-08-27 19:16 进阶之路 阅读(168) 评论(0) 推荐(0) 编辑

摘要: 思想: 构造其镜像树。 阅读全文
posted @ 2014-08-27 19:04 进阶之路 阅读(121) 评论(0) 推荐(0) 编辑

摘要: 思路: 使用两个队列(一个可以顺序读,所以用vector模拟),每个队列放一层结点。 题解: 两种方法: 1. 使用栈: O(n) Time, O(n) Space。 2. Morris traversal (构造线索树), O(n) Time, O(1) Space. 阅读全文
posted @ 2014-08-27 18:49 进阶之路 阅读(180) 评论(0) 推荐(0) 编辑

摘要: 思想: 迭代。 说明: 这类问题,要求一个提供根节点,然后另一个序列(中序序列)可依据根节点分出左右子树。 阅读全文
posted @ 2014-08-27 18:09 进阶之路 阅读(200) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页