题解 | #数组分组#
数组分组
https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86
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 num = in.nextInt(); int sum5 = 0; int sum3 = 0; LinkedList<Integer> ld = new LinkedList<Integer>(); int sum = 0; for (int i = 0; i < num; i++) { int temp = in.nextInt(); if (temp % 5 == 0) { sum5 += temp; sum += temp; } else if ( temp % 3 == 0) { sum3 += temp; sum += temp; } else { sum += temp; ld.add(temp); } } if (sum % 2 != 0) { System.out.println("false"); } else { sum = sum / 2 - sum5; System.out.println(isFind(ld, 0, sum)); } } } public static boolean isFind(LinkedList<Integer> ld, int start, int sum) { if (sum == 0) { return true; } else { if (start < ld.size() ) { return isFind(ld, start + 1, sum - ld.get(start)) || isFind(ld, start + 1, sum); } else { return false; } } } }