在不太复杂的Java语言中使用前缀搜索书名

时间:2018-09-04 08:07:46

标签: java algorithm data-structures time-complexity space-complexity

问题陈述:

考虑一个拥有数百万本书的图书馆。每分钟都会添加和删除数千本书。问题是在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。 我并不是要有人通过为我编写代码来解决这个问题。我只是想问一个关于使用哪种数据结构以最小化复杂度的想法,因为我仍在学习数据结构和算法。 抱歉,这是一个愚蠢的问题。 谢谢

1 个答案:

答案 0 :(得分:1)

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

我发现this简洁明了,并解释了trie是什么以及它与其他数据结构的区别。

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