如果您有两个主要相同的文件,其中包含1000条记录,您将如何编写代码来查找它们之间的差异。假设不允许使用unix / linux命令。
我的想法:
由于大多数条目都相同,我们可以对这两个文件的条目进行排序,然后逐个比较每个条目,例如: file1中的条目i与file2中的条目i相比较。它是O(n lg n),n是文件的大小。
有O(n)解决方案吗?
答案 0 :(得分:3)
哈希表是你的朋友。
1
。现在您知道两个文件中存在哪条记录(值3),该文件仅存在于第一个文件中(值1),并且仅存在于第二个文件中(值2)。并且在线性时间。
注意:如果您正在实现自己的哈希表,则必须根据需要处理增大表的大小以及冲突。我敢肯定,如果你能做到这一点,那么你就不会有这个问题,所以请使用图书馆。