给定一个整数数组和一个整数n,如何找到一个总和为n的子数组(非连续)?

时间:2016-02-20 17:23:46

标签: java arrays

我正在做练习,我一直坚持检查是否有办法在排序数组中找到一个非连续序列,该数组总和为给定的整数n。

例如:

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

总和为20的整数位于0,2,3,4。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您应该遍历集合的所有子集。 对于使用N设置,您可以拥有Math.pow(2,N)个子集。为此,您可以从1迭代到Math.pow(2,N)并尝试在位值为1的位置的某些元素,如果子集总和为K,则比您找到子集。