题解 | #数组分组#
数组分组
https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int count = sc.nextInt();
int sum5 = 0;
int sum = 0;
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i < count; ++i){
int num = sc.nextInt();
sum += num;
if(num % 5 == 0){
sum5 += num;
} else if(num % 3 != 0){
list.add(num);
}
}
if(sum % 2 != 0){
System.out.println("false");
return;
}
int target = sum / 2 - sum5;
System.out.println(helper(list, target, 0));
}
// 在list中能够找到和为target的集合
private static boolean helper(ArrayList<Integer> list, int target, int i) {
if(i == list.size()){
return target == 0;
}
return helper(list, target - list.get(i), i + 1) || helper(list, target, i + 1);
}
}