题解 | #数组分组#

数组分组

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

全部评论

相关推荐

10-01 09:50
门头沟学院 Java
肖先生~:这个人真的很好,点赞
点赞 评论 收藏
分享
渴望wlb的牛油果很...:直说卡第一学历不就行了 非得拐弯抹角
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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