数组中所有元素的总和小于O(N2)

时间:2018-05-09 05:08:13

标签: algorithm time-complexity

我有一个大小为N的数组A.我想制作一个大小为N * N的新数组,这样我的新数组B将如下,时间复杂度小于Ω(N2):

For A[0..N-1] ,
B= {A[0]+A[0],,A[0]+A[1], A[0]+A[2], ……., A[1]+A[0], A[1]+A[1],A[1]+A[2], ……., A[N-1]+A[0], A[N-1]+A[1],..., A[N-1]+A[N-1]}.

示例:

A={1,2}

序列B为{ A1+A1, A1+A2, A2+A1, A2+A2 } = {2,3,3,4}. 请提供相应的代码。

2 个答案:

答案 0 :(得分:2)

这不可能。

填充大小 N 2 的数组至少涉及 N 2 写入,因此它需要Ω N 2 )时间。

答案 1 :(得分:0)

问题描述示例不一致。

您提供了:

For A[0..N-1] ,
B= {A[0]+A[1], A[0]+A[2], ……., A[1]+A[0], A[1]+A[2], ……., A[N-1]+A[0], A[N-1]+A[1],..., A[N-1]+A[N-1]}

如果您观察到,该号码不会被添加到自身。 A [0]似乎没有添加A [0]而A [1]似乎没有添加A [1]。但同样,A [n-1]似乎最后添加了A [n-1]。我认为按照这种模式应该是A [n] + A [n-1]。此外,在这种情况下,B的大小将是N *(N-1)。

同样,您提供的示例与问题描述不匹配。在您的示例中,您似乎将数字添加到自身。

A={1,2}
The sequence B is { A1+A1, A1+A2, A2+A1, A2+A2 } = {2,3,3,4}.

请更新问题并更正示例或问题说明,如果您可以提供问题的文字说明以及数字示例说明,则会有所帮助。