百度4.12第三题,大佬看下对不对

public class Baidu {
    public static void main(String[] args) {
        //第三题
        Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();
        sc.nextLine();
        for (int i = 0; i < t; i++) {
            Map<Integer, Integer> map = new HashMap<>();
            int n = sc.nextInt();
            int k = sc.nextInt();
            sc.nextLine();
            int[] arr = new int[n];
            for (int j = 0; j < n; j++) {
                arr[j] = sc.nextInt();
            }
            method(arr,map,0,k,0,0);
            int ans=0;
            for(Integer key:map.keySet()){
                if(key%2==0)
                    ans+=map.get(key);
            }
            System.out.println(ans);
            sc.nextLine();
        }
    }

    public static void method(int[] arr, Map<Integer,Integer>map,int index,int k,int num,int add){
        if(num==k){
            int val=map.getOrDefault(add,0);
            val+=1;
            map.put(add,val);
            return;
        }
        for(int i=index;i<arr.length;i++){
            add+=arr[i];
            num++;
            method(arr,map,i+1,k,num,add);
            add-=arr[i];
            num--;
        }
    }
}

#百度笔试##实习##笔试题目#
全部评论
预处理一下组合数 然后奇数选多少个偶数选多少个就可以了 过了100%
点赞 回复 分享
发布于 2022-04-13 10:34
深搜我就过了20
点赞 回复 分享
发布于 2022-04-12 23:21
DFS不会超时嘛
点赞 回复 分享
发布于 2022-04-12 21:47

相关推荐

一表renzha:你点进去没打招呼他也会有提示的,之前我点进美的,还没打招呼,他马上给我发了不太合适哦
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
king122:专业技能不要写这么多,熟悉和熟练你经不住问,排版有些难看,中间的空隙搞小一点,项目描述的话感觉是从课程中抄下来的,改一改吧,不然烂大街了,每个项目都写一两点,用什么技术实现了什么难点,然后再写一些数字上去像时间又花了90%这样,这样面试会多一些,如果觉得自己的项目还是不够用的话,我有几个大厂最近做过的实习项目,感兴趣的话可以看我简介中的项目地址
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

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