标签: data-structures

检查数字是否为素数的最佳算法是什么?

只是我正在寻找的一个例子:我可以用一点代表每个奇数,例如对于给定的数字范围(1,10),从3开始:

__PRE__

以下字典可以挤得更对吗?我可以通过一些工作来消除五的倍数,但是以1,3,7或9结尾的数字必须在位数组中存在.希望这能澄清我想要的东西.

我正在寻找最好的算法,检查数字是否是素数,即布尔函数:

__PRE__

我想知道实现此功能的最佳算法.当然,我可以查询一个数据结构.我定义了最好的算法,它是生成数据结构的算法,该数据结构具有最低的内存消耗范围(1,N),其中N是常量.

algorithm math primes data-structures

148
推荐指数
8
解决办法
27万
查看次数

为什么要启动具有初始容量的ArrayList?

通常的构造函数ArrayList是:

ArrayList<?> list = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

但是还有一个重载的构造函数,其初始容量有一个参数:

ArrayList<?> list = new ArrayList<>(20);
Run Code Online (Sandbox Code Playgroud)

ArrayList当我们可以随意添加时,为什么创建具有初始容量的产品很有用?

java arraylist capacity data-structures

147
推荐指数
5
解决办法
8万
查看次数

如何使用多个键实现Map?

我需要一个行为类似于Map的数据结构,但使用多个(不同类型的)键来访问其值.
(我们不要太笼统,让我们说两把钥匙)

钥匙保证是独一无二的.

就像是:

MyMap<K1,K2,V> ...
Run Code Online (Sandbox Code Playgroud)

使用以下方法:

getByKey1(K1 key)...
getByKey2(K2 key)...
containsKey1(K1 key)...
containsKey2(K2 key)...
Run Code Online (Sandbox Code Playgroud)

你有什么建议吗?

我唯一能想到的是:
编写一个内部使用两个Maps的类.

编辑 有些人建议我使用元组,或类似作为Java Map的键,但这对我不起作用:
如上所述,我必须能够通过两个键中的一个来搜索值指定.
地图使用密钥的哈希码并检查它们的相等性.

java data-structures

144
推荐指数
6
解决办法
23万
查看次数

什么是"冻结的字典"?

  • 冻结集是冻结集.
  • 冻结列表可以是元组.
  • 冻结的词典会是什么?一个不可变的,可洗的字典.

我想它可能是类似的collections.namedtuple,但这更像是一个冻结的词典(一个半冻结的词典).不是吗?

A"frozendict"应该是一个冰冻的字典,它应该有keys,values,get,等,并支持in,for等等.

python dictionary immutability data-structures

140
推荐指数
10
解决办法
7万
查看次数

如何实现set()?

我见过有人说setpython 中的对象有O(1)成员资格检查.它们如何在内部实施以实现这一目标?它使用什么样的数据结构?该实施还有哪些其他含义?

这里的每个答案都很有启发性,但我只能接受一个,所以我会用最接近我原来问题的答案.谢谢你的信息!

python cpython set data-structures

140
推荐指数
6
解决办法
5万
查看次数

如何在java中实例化Queue对象?

当我尝试:

Queue<Integer> q = new Queue<Integer>();
Run Code Online (Sandbox Code Playgroud)

编译器给我一个错误.有帮助吗?

另外,如果我想初始化队列,我是否必须实现队列的方法?

java queue data-structures

140
推荐指数
8
解决办法
30万
查看次数

Objective-C中是否有强类型集合?

我是Mac/iPhone编程和Objective-C的新手.在C#和Java中,我们有"泛型",集合类的成员只能是声明的类型.例如,在C#中

Dictionary<int, MyCustomObject>

只能包含整数和值为MyCustomObject类型的键.Objective-C中是否存在类似的机制?

generics collections objective-c strong-typing data-structures

138
推荐指数
6
解决办法
5万
查看次数

给定一百万个数字的字符串,返回所有重复的3位数字

几个月前我在纽约接受了一家对冲基金公司的采访,不幸的是,我没有获得数据/软件工程师的实习机会.(他们还要求解决方案使用Python.)

我几乎搞砸了第一个面试问题......

问题:给定一个百万个数字的字符串(例如Pi),写一个函数/程序,返回所有重复的3位数字和大于1的重复次数

例如:如果字符串是:123412345123456那么函数/程序将返回:

123 - 3 times
234 - 3 times
345 - 2 times
Run Code Online (Sandbox Code Playgroud)

我在面试失败后没有给我解决方案,但他们确实告诉我,解决方案的时间复杂度始终为1000,因为所有可能的结果都在:

000 - > 999

既然我正在考虑它,我认为不可能提出一个恒定的时间算法.是吗?

python algorithm number-theory data-structures

137
推荐指数
5
解决办法
1万
查看次数

为什么有人会使用set而不是unordered_set?

C++ 0x正在引入unordered_set,可以在boost许多其他地方使用.我理解的是unordered_set具有O(1)查找复杂性的哈希表.另一方面,set只是具有log(n)查找复杂性的树.为什么人们会使用set而不是unordered_set?即是否需要set了?

c++ algorithm data-structures c++11

134
推荐指数
10
解决办法
6万
查看次数

我为什么要使用Deque over Stack?

Stack我的用例需要一个数据结构.我应该能够将项目推送到数据结构中,我只想从堆栈中检索最后一项.该堆栈的JavaDoc说:

Deque接口及其实现提供了更完整和一致的LIFO堆栈操作集,应优先使用此类.例如:

Deque<Integer> stack = new ArrayDeque<>();
Run Code Online (Sandbox Code Playgroud)

我肯定不希望在这里同步行为,因为我将使用本地数据结构的方法.除了这个,我为什么要喜欢DequeStack这里?

PS:Deque的javadoc说:

Deques也可以用作LIFO(后进先出)堆栈.应优先使用此接口,而不是传统的Stack类.

java data-structures

134
推荐指数
4
解决办法
6万
查看次数