题解 | #数组分组#递归

数组分组

https://www.nowcoder.com/practice/9af744a3517440508dbeb297020aca86

import java.math.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import java.util.stream.*;
import java.util.regex.*;
import java.util.function.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int count = in.nextInt();

        int[] a = new int[count];
        for (int i = 0; i < count; i++) {
            a[i] = in.nextInt();
        }
        System.out.println(group(a, 0, 0, 0));
    }

    static boolean group(int[] a, int index, int sum5, int sum3) {
        // System.out.printf("index: %d, sum5: %d, sum3: %d\n", index, sum5, sum3);
        if (index == a.length) {
            if (sum3 == sum5) {
                return true;
            } else {
                return false;
            }
        }

        int curr = a[index];
        if (curr % 5 == 0 ) {
            // 注意这里不能使用index++
            return group(a, index + 1, sum5 + curr, sum3);
        } else if (curr % 3 == 0) {
            return group(a, index + 1, sum5, sum3 + curr);
        } else {
            return group(a, index + 1, sum5, sum3 + curr)
                   || group(a, index + 1, sum5 + curr, sum3);
        }
    }
}


全部评论

相关推荐

我就是0offer糕手:北大不乱杀
点赞 评论 收藏
分享
04-15 23:42
中山大学 Java
ResourceUtilization:过几天楼主就会捧着一堆offer来问牛友们该怎么选辣
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务