[英]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.