我想知道当有人要求你解决一个算法问题时,它是一个真正开始使用Hastable,Hashset还是HashMap的好方法。通常我听过有人说你不应该把Hashes作为你的第一个答案。
那么我们应该如何处理算法:应该重视就地或确保时间复杂度最佳
我不想概括,但仍有一些建议会有所帮助。
由于
答案 0 :(得分:3)
你能想到的最好的答案就是你的一般性问题的一般答案。
这取决于。
有许多不同算法的原因是因为并不总是有一种算法是最好的。许多算法旨在解决彼此不同的问题。有些算法甚至没有理由讨论哈希表。
如果有人要求我解决算法问题,我可能会尝试使用内置于我正在使用的语言中的内容,然后再设计自己的算法。原因是因为我珍惜我的时间。如果我后来发现代码效率不高,那么我可以寻找更好的方法来实现它。
答案 1 :(得分:1)
我认为这是非常情境化的。如果随机访问是一个优先级,并且您需要快速访问并且对内存利用率的限制很少而且没有顺序访问,那么Hashtable(等)就是您的选择。