问题陈述:
考虑一个拥有数百万册图书的图书馆。每分钟都会添加和删除数以千计的书籍。问题是在java中使用前缀(给定为输入)以及最小的时间和空间复杂度来查找所有可用的书籍。例,
Books - {'abcd','abda','aaqe','abc'}
input: ab
output: 3 // because there are 3 book names starting with 'ab'
input: abc
output: 2
input: a
output: 4
这可以使用循环完成,但正如我之前所说,这需要在java中以最小的时间和空间复杂度完成。
提前致谢
更新 - 因为每个人都要我至少尝试编写自己的代码,我正在更新它。这个问题在接受采访时给了我。我尝试使用hashmap
并且说服采访者,但我仍然认为有一些好的data structures
或algorithms
用于此目的。我不是要求任何人通过为我编写代码来解决这个问题。我只是想知道哪个数据结构用于最小的复杂性,因为我还在学习数据结构和算法。对不起,如果这是一个愚蠢的问题。谢谢