184得票6回答
2^n和n*2^n具有相同的时间复杂度吗?

我在时间复杂度方面找到的资源对于何时可以忽略时间复杂度方程中的项不是很清楚,尤其是对于非多项式的例子。 对于形如n2 + n + 1的表达式,最后两项可以忽略不计。 具体来说,对于两个分类:2n和n*(2n),第二个分类是否与第一个分类相同?那里的额外乘以n是否重要?通常的资源只是说xn是...

183得票16回答
“O(1)访问时间”是什么意思?

我看到过“O(1)访问时间”这个术语被用来表示“快速”,但我不知道它的含义。在同一上下文中,我还看到了另一个术语“O(n)访问时间”。请简单地解释一下这些术语的含义。 参见 什么是大O符号?你使用它吗? 八岁孩子也能理解的大O符号是什么?

183得票3回答
标准容器的复杂度保证是什么?

显然;-),标准容器提供某种形式的保证。 什么类型的保证以及不同类型的容器之间的区别是什么? 从SGI页面(关于STL)开始工作,我得出了以下结论:Container Types: ================ Container: Forward Container ...

177得票31回答
O(nlogn) 算法 - 在二进制字符串中找到三个均匀间隔的“1”

我昨天在算法测试中遇到了这个问题,但我无法找出答案,这让我非常疯狂,因为它占了大约40分。 我觉得大多数同学没有正确解决它,因为我过去24小时内也没有找到解决方案。 给定长度为n的任意二进制字符串,如果存在三个等间距的1,请编写一个算法在O(n*log(n))的时间内解决此问题。 像这样的...

176得票30回答
如何将两个已排序的数组合并成一个已排序的数组?

这是我在面试中被问到的问题,以下是我提供的解决方案:public static int[] merge(int[] a, int[] b) { int[] answer = new int[a.length + b.length]; int i = 0, j = 0, k =...

168得票14回答
为什么在链表中间插入元素的时间复杂度是O(1)?

根据维基百科关于链表的文章,在链表中间插入被认为是O(1)。但我认为它应该是O(n),因为你需要找到可能在列表末尾附近的节点。这个分析是否没有考虑到查找节点操作(虽然必须执行)只是插入本身? 编辑: 引用块: 相对于数组,链表有几个优点。在列表特定位置插入元素是一个恒定时间的操作,而在数组...

154得票3回答
Python集合操作的时间复杂度是什么?

每个Python集合操作的时间复杂度是什么(使用Big O表示)? 我正在使用Python的set类型对大量项目进行操作。我想知道集合大小如何影响每个操作的性能。例如,add和成员测试: myset = set() myset.add('foo') 'foo' in myset 我在网...

151得票11回答
O(1) 复杂度算法的例子、O(n log n) 复杂度算法的例子和 O(log n) 复杂度算法的例子

我们日常使用的一些算法有哪些,它们的时间复杂度分别为 O(1)、O(n log n) 和 O(log n)?

137得票10回答
哈希表真的可以达到O(1)吗?

似乎普遍认为哈希表可以实现O(1)的复杂度,但这对我来说从未有过意义。能否有人解释下?以下是我能想到的两种情况: A. 值是小于哈希表大小的整数。因此,该值就是自己的哈希值,所以根本没有哈希表存在。但即使有,它也是O(1),仍然效率低下。 B. 您必须计算值的哈希值。 在这种情况下,所需计...

131得票20回答
最大单笔销售利润

假设我们有一个包含n个整数的数组,表示单日股票价格。 我们想要找到一对(买入日,卖出日),其中 buyDay ≤ sellDay,并且如果我们在buyDay购买股票并在sellDay卖出,我们将最大化我们的利润。 显然,通过尝试所有可能的(buyDay,sellDay)对并从中选择最好的,可...