使用更简单的前缀搜索书名 java
Search a book name by using prefix in less complexity java
问题陈述:
考虑一个拥有数百万本书的图书馆。每分钟都有数千本书被添加和删除。问题是在 java 中使用最短时间和 space 复杂度的前缀(作为输入给出)找到所有可用的书籍。
例如,
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 的复杂性 java。
提前致谢
更新 - 因为每个人都要求我至少尝试编写自己的代码,所以我正在更新它。这个问题是在 采访 中提出的。我使用 hashmap
进行了尝试,它说服了面试官,但我仍然认为有一些好的 data structures
或 algorithms
可用于此目的。
我不会要求任何人通过为我编写代码来解决这个问题。由于我仍在学习数据结构和算法,所以我只是想知道使用哪种数据结构来实现最小的复杂性。
对不起,如果这是一个愚蠢的问题。
谢谢
您可以使用名为 Trie
的数据结构来实现相同的目的。
我发现 this 很有用,因为它简洁明了,并解释了 trie
是什么以及它与其他数据结构的不同之处。
您还可以参考其他在线资源以更好地了解Trie
。
问题陈述:
考虑一个拥有数百万本书的图书馆。每分钟都有数千本书被添加和删除。问题是在 java 中使用最短时间和 space 复杂度的前缀(作为输入给出)找到所有可用的书籍。 例如,
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 的复杂性 java。
提前致谢
更新 - 因为每个人都要求我至少尝试编写自己的代码,所以我正在更新它。这个问题是在 采访 中提出的。我使用 hashmap
进行了尝试,它说服了面试官,但我仍然认为有一些好的 data structures
或 algorithms
可用于此目的。
我不会要求任何人通过为我编写代码来解决这个问题。由于我仍在学习数据结构和算法,所以我只是想知道使用哪种数据结构来实现最小的复杂性。
对不起,如果这是一个愚蠢的问题。
谢谢
您可以使用名为 Trie
的数据结构来实现相同的目的。
我发现 this 很有用,因为它简洁明了,并解释了 trie
是什么以及它与其他数据结构的不同之处。
您还可以参考其他在线资源以更好地了解Trie
。