gpt4 book ai didi

java - 用于处理列表的所有连续子序列的简单代码的算法复杂度 : n^2 or n^3?

转载 作者:IT老高 更新时间:2023-10-28 21:06:57 26 4
gpt4 key购买 nike

我正在学习考试,发现了这个问题:

我无法确定复杂性,我认为它是 O(n2) 或 O(n3),我倾向于 O(n 3)。
谁能告诉我它是什么以及为什么?

我认为它是 O(n2) 是因为在 j 循环中, j = i 给出了一个三角形,并且然后 k 循环从 i + 1j,我认为这是三角形的另一半。

public static int what(int[] arr)
{
int m = arr[0];
for (int i=0; i<arr.length; i++)
{
for (int j=i; j<arr.length;j++)
{
int s = arr[i];
for (int k=i+1; k<=j; k++)
s += arr[k];
if (s > m)
m = s;
}
}
return m;
}

如果你能告诉我它是做什么的?

我想它会返回正整数或数组中最大整数的加法。
但是对于像 {99, -3, 0, 1} 这样的数组,它会返回 99,我认为这是因为它有问题。如果不是,我不知道它做了什么:

{99, 1} => returns 100
{-1, -2, -3} => return -1
{-1, 5, -2} => returns 5
{99, -3, 0, 1} => returns 99 ???

最佳答案

您可以有条不紊地进行,使用 Sigma 表示法,以获得增长复杂度的顺序:

enter image description here

关于java - 用于处理列表的所有连续子序列的简单代码的算法复杂度 : n^2 or n^3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22804177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com