摘要: 找规律? 我们通过举一些正确的例子,比如"9,3,4,#,#,1,#,#,2,#,6,#,#" 或者"9,3,4,#,#,1,#,#,2,#,6,#,#"等等,可以观察出如下两个规律: 1. 数字的个数总是比#号少一个 2. 最后一个一定是#号 那么我们加入先不考虑最后一个#号,那么此时数字和#号的 阅读全文
posted @ 2017-08-07 18:40 apanda009 阅读(149) 评论(0) 推荐(0) 编辑
摘要: Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists. 是在l1的基础上连接的, 所以要注意需要链接l1 l2.next = l1; 需要不断更新前一个节点pre = ... 阅读全文
posted @ 2017-08-07 17:15 apanda009 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 这道题是比较常见的链表反转操作,不过不是反转整个链表,而是从m到n的一部分。分为两个步骤,第一步是找到m结点所在位置,第二步就是进行反转直到n结点。反转的方法就是每读到一个结点,把它插入到m结点前面位置,然后m结点接到读到结点的下一个。总共只需要一次扫描,所以时间是O(n),只需要几个辅助指针,空间 阅读全文
posted @ 2017-08-07 16:15 apanda009 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 这道题跟Insertion Sort List类似,要求我们用O(nlogn)算法对链表进行排序,但是并没有要求用哪一种排序算法,我们可以使用归并排序,快速排序,堆排序等满足要求的方法来实现。对于这道题比较容易想到的是归并排序,因为我们已经做过Merge Two Sorted Lists,这是归并排 阅读全文
posted @ 2017-08-07 14:27 apanda009 阅读(129) 评论(0) 推荐(0) 编辑
摘要: bst: 加count记住遍历过得点有几个点比当前的点小(作为当前节点的左子树的节点数), 返回右父节点的所有count 和, 向左遍历(想好建好树后最后的点向哪遍历, 向左遍历, 第一个点就遍历了右边的所有的节点) Time: O(NlogN), space: O(N) better than n 阅读全文
posted @ 2017-08-07 11:36 apanda009 阅读(187) 评论(0) 推荐(0) 编辑
摘要: Boyer-Moore Majority Vote algorithm The essential concepts is you keep a counter for the majority number X. If you find a number Y that is not X, the 阅读全文
posted @ 2017-08-07 09:08 apanda009 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 数组和字符串的分治法: 对返回值的操作(叶结点的+ 非叶结点的), 出口, 分治起始位置, 题目要求--返回值 难点在于从哪分(题目要求的理解? 中间?符号?)和叶结点情况的处理->返回值 见Different Ways to Add Parentheses 投票法: 根据majority 的特性 阅读全文
posted @ 2017-08-07 08:57 apanda009 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 在Binary Tree Level Order Traversal中我们是维护了一个队列来完成遍历,而在这里为了使每次都倒序出来,我们很容易想到用栈的结构来完成这个操作。有一个区别是这里我们需要一层一层的来处理(原来可以按队列插入就可以,因为后进来的元素不会先处理),所以会同时维护新旧两个栈,一个 阅读全文
posted @ 2017-08-07 00:07 apanda009 阅读(171) 评论(0) 推荐(0) 编辑