通过在复杂度较低的java中使用前缀来搜索书名

问题描述 投票:-3回答:1

问题陈述:

考虑一个拥有数百万册图书的图书馆。每分钟都会添加和删除数以千计的书籍。问题是在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 structuresalgorithms用于此目的。我不是要求任何人通过为我编写代码来解决这个问题。我只是想知道哪个数据结构用于最小的复杂性,因为我还在学习数据结构和算法。对不起,如果这是一个愚蠢的问题。谢谢

java algorithm data-structures time-complexity space-complexity
1个回答
1
投票

您可以使用名为Trie的数据结构来实现相同的目标。

我发现this很有用,因为它简洁并解释了什么是trie以及它与其他数据结构有何不同。

您还可以在线参考其他来源以更好地了解Trie

© www.soinside.com 2019 - 2024. All rights reserved.