7得票1回答
Trie和红黑树:在空间和时间方面哪个更好?

尝试树和红黑树都非常适合存储字符串。 哪一个具有更好的时间复杂度?空间复杂度如何?

49得票13回答
O(1)是什么意思?

我注意到在涉及哈希和搜索类型算法的讨论中,对O(1)有一些奇怪的用法,通常是在使用语言系统提供的字典类型或使用使用数组索引符号的字典或哈希数组类型时使用。 基本上,O(1)表示受常量时间(通常)和固定空间的限制。 一些非常基本的操作是O(1),尽管使用中间语言和特殊的虚拟机倾向于扭曲人们的思...

8得票3回答
这段代码的复杂度是什么?嵌套的for循环会使计数器倍增。

在《程序员面试金典》一书中,提到以下程序的复杂度为O(N),但我不明白为什么会这样。有人能解释一下吗? int var = 2; for (int i = 0; i < N; i++) { for (int j = i+1; j < N; j *= 2) { v...

8得票1回答
查找一个字符串中的每个字符是否存在于另一个字符串中,时间复杂度要快于O(n^2)。

考虑到有两个字符串: String stringA = "WHATSUP"; String stringB = "HATS"; 我想知道字符串B中的每个字符 H A T S 是否存在于字符串A中。 一个初级的方法是使用嵌套的for循环来完成这个过程,但它的计算复杂度为O(n^2)。 ...

7得票5回答
为什么不是每个算法都是O(1)?

如果我们有一个包含 n 个整数的随机数组,需要计算这些整数的总和。 声明:最佳算法可以在 O(n) 的时间内完成此任务。 但是,我认为我们可以在 O(1) 的时间内完成。为什么呢? 因为我们知道 n 肯定被锁定在某个字段中(因为它是 int 类型且 int 是有限的),这意味着我可以在不...

9得票1回答
如何测量一个字符串的复杂度?

我有几个很长的字符串(约1,000,000个字符)。每个字符串只包含来自定义字母表中的符号,例如: A = {1,2,3} 示例字符串 string S1 = "1111111111 ..."; //[meta complexity] = 0 string S2 = "11112223...

26得票9回答
寻找所有满足条件 a^3 + b^3 = c^3 + d^3 的四元组 [a, b, c, d],其中 1 <= a, b, c 或 d <= 10000。

寻找一种算法或者一些编程提示来解决以下问题:a^3 + b^3 = c^3 + d^3,其中a, b, c和d均在区间[1 .. 10000]内。这是一道面试题。我考虑使用优先队列至少迭代a和b值。如果有一些提示会很好,我会从那里开始尝试。

26得票3回答
检测汉克尔矩阵置换的算法

我正在尝试编写代码来检测矩阵是否为Hankel矩阵的排列,但我除了非常慢的暴力方法外想不到更有效的解决办法。这是规范。 输入:一个n乘n的矩阵M,其条目为1或0。 输入格式:以空格分隔的行。每行一行。例如0 1 1 1 0 1 0 1 0 1 0 0 1 0 1 1 输出:将矩阵M的行和列...

12得票3回答
两个依赖的for循环,其中外层循环具有log n复杂度的复杂度问题。

问题 计算该算法的复杂度: for(i=n; i&gt;1;i=i/2) for(j=i;j&lt;n;j++){ statement; } 我之前在这个主题上做了什么: 第一个循环运行logn次。 第二个循环以n为起始值,每次外部循环迭代时将i更改为i/2,...

14得票1回答
Java集合框架中常用方法(size)的意外复杂性?

近期,我惊讶地发现一些Java集合的方法size()并非具有恒定时间操作。 尽管我了解到并发集合实现在获得并发性方面做了一些妥协(如在ConcurrentLinkedQueue、ConcurrentSkipListSet、LinkedTransferQueue等中使size为O(n)),但好...