题解 | #数组分组#
数组分组
https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86
import java.util.Scanner; import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 // while (in.hasNextInt()) { // 注意 while 处理多个 case // int a = in.nextInt(); // int b = in.nextInt(); // System.out.println(a + b); // } int num = in.nextInt(); int sum = 0, sum3 = 0, sum5 = 0; List<Integer> list = new ArrayList<>(); while (in.hasNextInt()) { int cur = in.nextInt(); sum += cur; if (cur%5 == 0) { sum5 += cur; } else if (cur%3 == 0) { sum3 += cur; } else { list.add(cur); } } if (sum%2!=0) { System.out.println("false"); return; } int target = sum/2 - sum3; System.out.println(helper(0, target, list)); } private static boolean helper(int i, int target, List<Integer> list) { if (i == list.size()) return target == 0; return helper(i + 1, target - list.get(i), list) || helper(i + 1, target, list); } }