我正在做练习,我一直坚持检查是否有办法在排序数组中找到一个非连续序列,该数组总和为给定的整数n。
例如:
int[] a = {1, 2, 4, 5, 10};
int n = 20;
总和为20的整数位于0,2,3,4。
我该怎么做?
答案 0 :(得分:0)
您应该遍历集合的所有子集。
对于使用N设置,您可以拥有Math.pow(2,N)
个子集。为此,您可以从1迭代到Math.pow(2,N)
并尝试在位值为1的位置的某些元素,如果子集总和为K,则比您找到子集。