Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从数组元素的组合中求和_Java_Algorithm_Sum - Fatal编程技术网

Java 从数组元素的组合中求和

Java 从数组元素的组合中求和,java,algorithm,sum,Java,Algorithm,Sum,我有一个数组,如下所示: int[] numberArray = {9,2,1,5,6}; 我想设计一种方法,将整数作为参数,并返回true/false,这取决于该参数是否可以通过对该数组中的任何数字求和来实现 public boolean sumCheck (int sum) { // ... } 例如,如果sum为5,sumCheck将返回true,因为numberArray[3]==5。如果sum为12,sumCheck将返回true,因为numberArray[0]+numb

我有一个数组,如下所示:

int[] numberArray = {9,2,1,5,6};
我想设计一种方法,将整数作为参数,并返回true/false,这取决于该参数是否可以通过对该数组中的任何数字求和来实现

public boolean sumCheck (int sum) {
    // ...
}
例如,如果
sum
5
sumCheck
将返回true,因为
numberArray[3]==5
。如果
sum
12
sumCheck
将返回true,因为
numberArray[0]+numberArray[1]+numberArray[2]==12
。但是,如果
sum
4
,则它不会返回true,因为
numberArray
元素的组合不能求和到这个数字。

这就是问题,它是NP完全的。但是,您可以在Wiki页面上找到伪多项式时间算法(背包的一种变体,使用DP)。

这就是问题所在,它是NP完全的。但是,您可以在Wiki页面上找到伪多项式时间算法(背包的一种变体,使用DP)。

Check以一种很好的方式解释了您的问题。首先是蛮力,然后是dp解决方案。

检查以一种很好的方式解释了您的问题。首先是蛮力,然后是dp解决方案