当前位置: 首页 > 知识库问答 >
问题:

以下代码片段的大O符号是什么?

詹夕
2023-03-14

下面的代码是一个java方法,它遍历一个for循环,每次都创建一个新数组。我相信没有新数组实例化的代码是O(N),但有了新数组声明,我不确定。

int[] reverseArray(int[] a) {
  int[] result = new int[a.length];
  for (int i = 0; i < a.length; i++) {
    result[a.length - 1 - i] = a[i];
  }
  int[][] 2DArray = new int[a.length][a.length/2];
  // do something with 2DArray
  return result;
}

共有1个答案

锺离伟彦
2023-03-14

忽略未显示的“使用2DArray做某事”部分的逆转数组()方法在空间复杂度和时间复杂度上都是O(N)。它沿着输入数组走一次,并将其向后复制到输出数组中。

 类似资料:
  • 问题内容: 对于作业,我得到了以下8个代码段,以分析并给出运行时间的Big-Oh表示法。有人能告诉我我走的路是否正确吗? 我在想片段1的O(N) 片段2也为O(N) 片段3的O(N ^ 2) 片段4的O(N) 片段5的O(N ^ 2),但是n * n让我有点失望,所以我不太确定 片段6也为O(N ^ 2) 片段7的O(N ^ 3),但n * n再次让我失望 片段8的O(N) 问题答案: 我认为片段

  • 当我们试图通过执行时间来表征算法的效率时,并且独立于任何特定程序或计算机,重要的是量化算法需要的操作或者步骤的数量。选择适当的基本计算单位是个复杂的问题,并且将取决于如何实现算法。对于先前的求和算法,一个比较好的基本计算单位是对执行语句进行计数。在 sumOfN 中,赋值语句的计数为 1($$theSum = 0$$) 加上 n 的值(我们执行 $$theSum=theSum+i$$ 的次数)。我

  • 如果(新名称) 我可以理解在vanillaJS中检查newName是否真实,但在Typescript中,这是为了什么?Typescript已经保证newName是string,并且它具有。长度属性。 完整代码在这里:https://www.typescriptlang.org/docs/handbook/classes.html

  • 以下代码中的“-97”是什么意思? 我们创建了一个由26个LinkedList组成的数组来模拟字典。每个列表包含以“a”、“b”、“c”、......“z”开头的所有单词。代码是由讲师给出的。 这里是附注: 在特定MyLinkedList中搜索单词的步骤 假设要搜索的单词位于名为wordstr的String类型变量中。 将允许您跳转到正确的链接列表,并且包含将返回true/false,这取决于单词

  • 我在做关于Leetcode上大多数水问题的容器 问题: 给定n个非负整数a1,a2。。。,an,其中每个代表坐标(i,ai)处的一个点。绘制n条垂直线,使线i的两个endpoint位于(i,ai)和(i,0)。找到两条线,这两条线与x轴一起构成一个容器,使容器包含最多的水。 注意:容器不能倾斜,n至少为2。 问题链接:https://leetcode.com/problems/container-

  • 最近,我转用了PhpStorm(及其真棒)。 现在,我正在寻找像Sublime中的jQuery片段。 是的,我知道如何编写它们,但我想知道是否有某种包或已经定义的解决方案。