题解 | #数组分组#
数组分组
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); } }