design
我要上岸!!!
这个作者很懒,什么都没留下…
展开
-
LeetCode 225 Implement Stack using Queues
思路 只说一下pop和top操作。 (1)对于pop:每次pop的时候:首先将queue中的所有元素依次poll到一个tmp队列中,并用last变量记录最后一个poll出来的元素,用count记录加入tmp队列的次数,用来防止将最后一个需要移除的数据再加进去。最后queue = tmp,返回last即可。 时间复杂度O(n),空间复杂度O(n) (2)top:与pop操作基本相同,只是不需要用co...原创 2019-03-14 09:35:17 · 83 阅读 · 0 评论 -
LintCode 526 Load Balancer
思路 要求三个方法都是O(1)的时间复杂度 使用一个HashMap存储server_id(key)和对应的index(value),可以使得put和remove的时间都为常数级 使用一个ArrayList存储所有的server_id,方便通过索引随机pick一台服务器 remove方法:在arraylist中删除元素,如果仅仅使用其自带的remove方法,时间复杂度为O(n), 因为相当于在数组中...原创 2019-03-17 13:20:24 · 387 阅读 · 0 评论 -
LeetCode 297 Serialize and Deserialize Binary Tree
思路 Serialize:用arraylist代替queue进行bfs,使用index来完成,把所有节点加入一个arraylist,然后再统一转成字符串(StringBuilder)。注意需要在把所有节点加入arraylist后,进行从后往前的删除null值。 Deserialize: 同样使用一个arraylist,使用一个index来标记当前根节点,同时使用isLeftChild标记当前应该生...原创 2019-07-07 02:24:16 · 115 阅读 · 0 评论