2017-02-11 52 views
0

我知道遞歸的方式來壓扁嵌套數組。 在stackoverflow上有幾種解決方案(都在javajavascript - 一些使用內置庫)。是否有更高效的算法來壓扁數組?

但這些解決方案的時間複雜度是O(n^2)! 我想知道是否有一個算法可以做得更好。

在此先感謝您的幫助!

+6

它們看起來像O(n),其中n是元素的數量。我不明白你會如何比這更好。 –

+0

是你所指的數組n的維數,但是如果n是它考慮的元素的數量O(n) – mc20

+0

你鏈接的JavaScript問題中的「Adam」的答案是線性的,而不是二次的。 @VinceEmigh當在線性時間內做它微不足道是不合理的:) – Pointy

回答

3

您要麼是弄錯了,要麼將您的n定義爲要處理的元素數的根平方。

數組展平問題的所有解決方案都是O(n),其中n取決於元素的總數(因爲實際上,您需要掃描它們全部,每個元素只有一次)。展平數組不是一個算法問題,而只是將它放在一個「優雅」片段中的問題。

+0

我明白了。如果我錯了,請糾正我,但可以肯定地說它是僞多項式嗎? –

+1

@KarthikVasishta big-O總是多項式的最高階。 –

+0

謝謝@PeterLawrey –

相關問題