2016-02-20 21 views
-1

我正在做一個練習,我堅持檢查是否有一種方法可以找到排序數組中的非連續序列,並將其加總到給定的整數n中。給定一個整數數組和整數n,如何找到一個與n相加的子數組(非連續的)?

例如:

int[] a = {1, 2, 4, 5, 10}; 
    int n = 20; 

整數那筆20在位置0,2,3,4

我怎麼能這樣做?

+0

你怎麼知道有這樣一個序列? –

+0

數組是否被假定爲排序? –

+0

@FrankPuffer是的,它被排序 – steexd

回答

0

您應該遍歷集合的所有子集。 對於N設置,你可以有Math.pow(2,N)子集。爲此,您可以從1到Math.pow(2,N)進行迭代,並嘗試找到比特值爲1的那些位置的某些元素,並且如果子集合爲K,則會找到子集。

相關問題