1 solution 1
1.1 数据结构
一个Hashmap和一个双向链表。如果想要快速获取first,并且只遍历一次,那么就要想到双向链表和HashMap的组合。
链表可以保证第一个在head处,HashMap可以保证查找O(1)。
HashMap的key是word本身,value是双向链表中的一个节点。
1.2 思路
遍历每个word,查找HashMap,如果已经存在,那么将双向链表中对应的节点删除,并且将HashMap中的value设置为null。
如果不存在,那么插入双向链表的尾部。
遍历完后返回双向链表的head即可。
博客介绍了一种解决方案,采用Hashmap和双向链表的数据结构。利用双向链表保证首个元素在head处,HashMap实现O(1)查找。思路是遍历每个word,在HashMap中查找,存在则删除链表对应节点并置空value,不存在则插入链表尾部,最后返回链表head。

被折叠的 条评论
为什么被折叠?



