摘要: https://leetcode.com/problems/mini parser/ 递归做法:不断找出一个完整的nested integer字符串,解析出来并add进NestedInteger结构。 一个完整的nested integer字符串有以下两种情况: 1. 没有 包裹,形如 "123", 阅读全文
posted @ 2017-02-15 22:09 mioopoi 阅读(170) 评论(0) 推荐(0)
摘要: 上一周主要练习的是Linked List,这里做个简单的小结,主要是把要点列出来,以备再次复习时快速地过一遍。(小结应该上周就完成的,不料拖延症又犯了...) 要点: 链表数据结构的定义 链表的基本操作 增删查改 reverse find median Dummy Node(凡是链表结构发生变化的, 阅读全文
posted @ 2017-02-15 19:04 mioopoi 阅读(156) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/maximum subarray/ 暴力方法:枚举所有子数组,计算子数组和,记下最大的。复杂度是O(n^3)。 思路1:Dynamic Programming 定义f[i]表示以nums[i]结尾的子数组的最大长度。则有 由于记忆深度只有1 阅读全文
posted @ 2017-02-11 15:28 mioopoi 阅读(101) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/intersection of two linked lists/ 将其中一条链表首尾相接,然后对另外一条链表进行环路检测。如果两个链表相交,那么另外一条链表就是带环链表,否则无环。问题转化为linked list cycle II了。 记 阅读全文
posted @ 2017-02-11 14:01 mioopoi 阅读(108) 评论(0) 推荐(0)
摘要: http://hihocoder.com/problemset/problem/1371?sid=983707 描述 翻转一个链表 特殊要求:请使用以下链表结构 输入 输入包含多组数据。对于每组数据: 第一行是n,表示链表长度;当n= 1时,表示输入结束。(1 include include inc 阅读全文
posted @ 2017-02-11 13:26 mioopoi 阅读(399) 评论(0) 推荐(1)
摘要: http://hihocoder.com/contest/hiho136/problem/1 描述 小Ho编写了一个处理数据包的程序。程序的输入是一个包含N个数据包的序列。每个数据包根据其重要程度不同,具有不同的"延迟惩罚值"。序列中的第i个数据包的"延迟惩罚值"是Pi。如果N个数据包按照``的顺序 阅读全文
posted @ 2017-02-11 13:02 mioopoi 阅读(256) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/linked list cycle ii/ 参考:http://ihuafan.com/%E7%AE%97%E6%B3%95/floyds cycle finding algorithm 阅读全文
posted @ 2017-02-10 23:42 mioopoi 阅读(114) 评论(0) 推荐(0)
摘要: http://www.lintcode.com/zh cn/problem/convert binary search tree to doubly linked list/ 递归做法: 1. 分别将BST的左、右子树转换成双向链表 2. new出一个链表节点,值等于BST根节点的值 3. 由于是B 阅读全文
posted @ 2017-02-10 23:11 mioopoi 阅读(909) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/convert sorted list to binary search tree/ 1. 先找到链表中间节点的前一个节点(注意建dummy node) 2. 存下中间节点,根据中间节点的值new出树的根节点 3. 切开链表,分别对中间节点 阅读全文
posted @ 2017-02-10 21:06 mioopoi 阅读(113) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/merge k sorted lists/?tab=Description 思路1:暴力合并 一个简单的做法是遍历这k个链表,不断调用merge two lists的方法依次合并。这种做法效率很低。 Time complexity: 假设所 阅读全文
posted @ 2017-02-09 23:18 mioopoi 阅读(140) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/rotate list/ 其实就是对链表进行循环移位。比如 ,往右循环移2位,就是 。 循环右移k位的思路是: 1. 首先计算链表的长度len 2. k = k mod len。因为k可能比链表长度还大,取余并不影响结果。 3. 找到链表倒 阅读全文
posted @ 2017-02-09 22:13 mioopoi 阅读(123) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/copy list with random pointer/ 思路1:先拷贝整个链表,不考虑 域,同时用一个hash map存下原链表节点和复制节点的对应关系。然后再遍历一次原链表,构造新链表的 域。需要O(n)的额外空间。 思路2:复制的 阅读全文
posted @ 2017-02-09 21:43 mioopoi 阅读(137) 评论(0) 推荐(0)
摘要: https://leetcode.com/problems/reorder list/ 先找链表中点,然后把右边反转,再按要求重构链表。 阅读全文
posted @ 2017-02-09 18:02 mioopoi 阅读(136) 评论(0) 推荐(0)
摘要: http://www.lintcode.com/zh cn/problem/reverse linked list ii/ http://www.lintcode.com/zh cn/problem/reverse linked list ii/ 思路1:两次遍历,第一次遍历保存下m到n节点的数据; 阅读全文
posted @ 2017-02-08 21:37 mioopoi 阅读(735) 评论(2) 推荐(0)
摘要: https://leetcode.com/problems/odd even linked list/ 建两个dummy node,一个维护奇数节点构成的链表,另一个维护偶数节点构成的链表,最后再拼接起来。注意偶数节点构成的链表最后一个节点的 域要置空,否则可能会导致出现环路。 阅读全文
posted @ 2017-02-08 20:37 mioopoi 阅读(154) 评论(0) 推荐(0)