摘要:
一、题目说明 题目207. Course Schedule,给定n门课程,一些课程需要先修一些课程,判断能否修完所有课程。难度是Medium! 二、我的解答 这个题目是数据结构中的拓扑排序,通过栈可以实现。 性能如下: 三、优化措施 无 阅读全文
摘要:
一、题目说明 题目198. House Robber,给一列正整数表示每个房间存的金币,不能连续抢2个房间,计算可以得到的最大金币。 二、我的解答 这个题目,我列举了n=1,2,3,...5的情况,没有找到规律。后面看了解答知道了: 代码如下: 遗憾的是,超时: Time Limit Exceede 阅读全文
摘要:
一、题目说明 题目169. Majority Element,给定n个数的数组,返回出现次数超过半数的元素。 二、我的解答 这个题目用一个map,遍历一遍数组,计数每个元素出现的次数。 性能如下: 阅读全文
摘要:
一、题目说明 题目160. Intersection of Two Linked Lists,计算两个链表相连的位置。难度是Easy! 二、我的解答 这个题目,简单思考一下还是容易的。一次遍历,找到 的最后一个元素及其长度,如果 则相交。先移动长链表的指针 ,然后找到相等的位置即可。 代码如下: 性 阅读全文
摘要:
一、题目说明 题目155. Min Stack,设计一个栈,包括push, pop, top, getMin,时间复杂度要求是常数。难度是Easy! 二、我的解答 老老实实用数组实现一个栈,难度不大。关键在于overflowProcess的处理,pop的时候,计算最小值。 性能如下: 三、优化措施 阅读全文
摘要:
一、题目说明 题目152. Maximum Product Subarray,给一列整数,求最大连续子序列,其乘积最大。难度是Medium! 二、我的解答 这个题目,用双重循环就可以了。 性能如下: 三、优化措施 仔细再读读题目,一列整数,上述方法太“通用”,一次循环就可以了。 阅读全文
摘要:
一、题目说明 题目148. Sort List,对链表进行排序,时间复杂度要求是O(nlog(n)),空间复杂度要求是常量。难度是Medium! 二、我的解答 根据要求,唯一符合标准的是归并排序。 性能如下: 三、优化措施 将merge函数,修改为非递归版本: 性能如下: 阅读全文
摘要:
一、题目说明 题目146. LRU Cache,设计并实现一个LRU Cache,支持get和put操作。难度是Medium!时间复杂度要求是O(1)。 二、我的解答 时间复杂度要求是O(1),只能通过hash实现。同时要维护一个容量capacity,当capacity满的时候,更新“最近最少使用的 阅读全文
摘要:
一、题目说明 题目142. Linked List Cycle II,判断一个链表是否有环,如果有返回环的第一个元素,否则返回NULL。 这个题目是 141. Linked List Cycle 的升级版本,难度是Medium! 二、我的解答 最直观的解答就是用一个unordered_map dp来 阅读全文
摘要:
一、题目说明 题目141. Linked List Cycle,给一个链表,判断是否有环。难度是Easy! 二、我的解答 遍历链表,访问过的打上标记即可。 三、优化措施 快慢指针法,这个不破坏原链表。 阅读全文