簡體   English   中英

查找所有總和等於零的不間斷子序列

[英]Find all uninterrupted subsequences whose sum is equal to zero

假設我們有一個由N個整數組成的數組,並且想要找到具有等於零的和的連續元素的所有子序列。

例:

N = 9
array = [1, -2, 4, 5, -7, -4, 8, 3, -7]

應該輸出:

1 4 

4 7

5 8

1 8

因為上面的每個都是和等於零的子序列的開始和結束索引。

我得出的結論是,如果使用一種窮舉搜索所有可能解的朴素算法,那么就有N * (N + 1) / 2這樣的可能子序列會以O(N ^ 2)復雜度得出結論。

我想知道是否有任何方法可以實現O(N)復雜度或小於O(N ^ 2)的目標?

我知道子集和問題是一個NP完全問題,但是我的問題似乎要容易一些,因為它只需要連續元素的子序列。

先感謝您。

比你想的還要糟。

潛在的Θ(n²)不間斷子序列加起來等於零,如以下示例所示:

0 0 0 0 0 0 0 0 0

(這里, 每個子序列加起來為零。)

因此,任何打印出所有所需子序列的開始和結束索引的算法都將必然具有o(n²)最壞情況的復雜性。 打印出它們的元素將需要Θ(n³)時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM