Questions tagged «data-structures»

数据结构是以一种组织数据的方式,该方式允许有效地查询和/或更新该数据的特定属性。


13
给定一百万个数字的字符串,返回所有重复的3位数字
几个月前,我在纽约接受了一家对冲基金公司的采访,不幸的是,我没有获得数据/软件工程师的实习机会。(他们还要求解决方案使用Python。) 我几乎搞砸了第一次面试的问题... 问题:给定一百万个数字的字符串(例如,Pi),编写一个函数/程序,该函数/程序返回所有重复的3位数字,并且重复次数大于1 例如:如果字符串为:123412345123456则函数/程序将返回: 123 - 3 times 234 - 3 times 345 - 2 times 在面试失败后,他们没有给我解决方案,但他们确实告诉我,解决方案的时间复杂度恒定为1000,因为所有可能的结果都介于: 000-> 999 现在我正在考虑它,我认为不可能提出一个恒定时间算法。是吗?

5
如何实现三个堆栈的队列?
我在算法书(《算法》, Robert Sedgewick和Kevin Wayne 第四版)中遇到了这个问题。 与三个堆栈队列。实现一个具有三个堆栈的队列,以便每个队列操作都采用恒定数量(最坏情况)的堆栈操作。警告:高难度。 我知道如何使2个堆栈的队列,但我找不到3个堆栈的解决方案。任何想法 ? (哦,这不是家庭作业:))

6
如何在Java中创建链接列表数据结构?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 用Java创建链接列表的最佳方法是什么?

8
如何在哈希表和Trie(前缀树)之间进行选择?
因此,如果我必须在哈希表或前缀树之间进行选择,那么有哪些区分因素会导致我选择一个而不是另一个。从我自己的幼稚角度来看,似乎使用trie会有一些额外的开销,因为它没有存储为数组,但是就运行时间而言(假设最长的键是最长的英文单词),它实际上可以是O (1)(相对于上限)。也许最长的英语单词是50个字符? 一旦获得索引,哈希表将立即查找。但是,散列密钥以获取索引似乎很容易采取近50个步骤。 有人可以为此提供更丰富的见解吗?谢谢!



10
在C中实现字典的快速方法
在用C编写程序时,我想念的一件事就是字典数据结构。用C实现一个最方便的方法是什么?我不是在寻找性能,而是希望从头开始编写它。我也不希望它是通用的-像string-> int这样的东西。但是我确实希望它能够存储任意数量的项目。 这更多地是作为练习。我知道有可用的第三方库。但是请考虑片刻,它们不存在。在这种情况下,实现满足上述要求的字典的最快方法是什么。

6
HashMap的获取/输入复杂度
我们习惯说HashMap get/put运算是O(1)。但是,这取决于哈希实现。默认对象哈希实际上是JVM堆中的内部地址。我们确定声称get/putO(1)是否足够好? 可用内存是另一个问题。据我从javadocs理解,HashMap load factor应该是0.75。如果我们在JVM中没有足够的内存并且load factor超出限制怎么办? 因此,似乎无法保证O(1)。是有意义还是我想念什么?

3
加载的骰子的数据结构?
假设我有一个n面加载的模具,其中每边k 滚动时都有几率p k上升。我很好奇是否有一个好的算法可以静态地存储此信息(即固定的概率集),以便我可以有效地模拟骰子的随机滚动。 目前,我有一个O(lg n)解决方案。这个想法是存储所有k的前k个边的累积概率表,它们生成[0,1)范围内的随机实数,并对该表执行二进制搜索以获取其累加最大索引。值不大于所选值。我更喜欢这种解决方案,但是运行时没有考虑到这些可能性似乎很奇怪。特别是,在极端情况下,一侧总是出现或值均匀分布,尽管我的解决方案仍将采用对数步的许多方法,但可以通过朴素的方法在O(1)中生成滚动结果。 有人对运行时以某种“自适应”方式解决此问题有任何建议吗? 编辑:基于对这个问题的回答,我写了一篇文章,描述了解决这个问题的许多方法以及它们的分析。看起来Vose对别名方法的实现为每个模具辊提供了Θ(n)预处理时间和O(1)时间,这确实令人印象深刻。希望这是对答案中包含的信息的有用补充!

4
golang为什么我们没有固定的数据结构[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 我正在尝试解决“去编程语言”练习#1.4,这需要我有一套。我可以创建一个set类型,但是为什么语言没有附带呢?来自谷歌(番石榴也是起源于谷歌)的,语言设计者为什么不选择增加对基本数据结构的支持?为什么要强迫您的用户为一套基本的东西创建自己的实现?
129 data-structures  go  set 

9
从Linq的列表中选择多个字段
在ASP.NET C#中,我有一个结构: public struct Data { public int item1; public int item2; public int category_id; public string category_name; } 我有一个清单。我要选择category_id和category_name,运行的DISTINCT最后一个ORDERBY上category_name。 这是我现在所拥有的: List<Data> listObject = getData(); string[] catNames = listObject .Select(i=> i.category_name) .Distinct() .OrderByDescending(s => s) .ToArray(); 这显然只是获得类别名称。我的问题是,如何获取多个字段,以及将其存储在什么数据结构中(而不是string[])? 编辑 使用结构列表并不是一成不变的。如果建议更改我的支持数据结构以使选择更容易(我将编写很多此类记录),那么我很乐意提出建议。
128 c#  linq  data-structures 



30
设计一个堆栈,使getMinimum()应该为O(1)
这是面试问题之一。您需要设计一个包含整数值的堆栈,以便getMinimum()函数应返回堆栈中的最小元素。 例如:考虑以下示例 情况1 5->顶部 1个 4 6 2 调用getMinimum()时,它应返回1,这是最小元素 在堆栈中。 情况#2 stack.pop() stack.pop() 注意:5和1都从堆栈中弹出。所以之后,堆栈 好像, 4->顶部 6 2 调用getMinimum()时应返回2,这是 堆栈。 食用者: getMinimum应该返回O(1)中的最小值 在设计时还必须考虑空间约束,如果使用额外的空间,则它应该是恒定的空间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.