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即可。

原文地址:https://www.cnblogs.com/hustdc/p/10950209.html