题解 | #数组分组#

数组分组

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);
    }
}

全部评论

相关推荐

06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务