First non repeating word in a file? File size can be 100GB.

1 solution 1

1.1 数据结构

一个Hashmap和一个双向链表。如果想要快速获取first,并且只遍历一次,那么就要想到双向链表和HashMap的组合。

链表可以保证第一个在head处,HashMap可以保证查找O(1)。

HashMap的key是word本身,value是双向链表中的一个节点。

1.2 思路

遍历每个word,查找HashMap,如果已经存在,那么将双向链表中对应的节点删除,并且将HashMap中的value设置为null。

如果不存在,那么插入双向链表的尾部。

遍历完后返回双向链表的head即可。

posted @ 2019-05-30 16:11  PhoenixTree(梧桐树)  阅读(228)  评论(0编辑  收藏  举报