猿辅导笔试编程第二题

题目大意:多个角色,每三个角色可组成一组,最多可以组成多少组。

思路:每次选取最大的三个数减1,直到第三大的数为零。

代码我没有测试过,别人笔试时让我帮忙看下,我就自己实现了下,不知道效果如何。
import java.util.*;

public abstract class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int c=sc.nextInt();
        int result[]=new int[c];
        for (int i = 0; i <c; i  ) {
            int T=sc.nextInt();
            int[]  temp=new int[T];
            for (int j = 0; j <T ; j  ) {
                temp[j]=sc.nextInt();
            }
            result[i]=getMax1(temp);
        }
        for (int i = 0; i <c ; i  ) {
            System.out.println(result[i]);
        }


    }
    //之前有些回复指出此种方***超时,所以利用优先队列实现了下,不知道效果如何
    /*public static int getMax(int[] array){
        int len=array.length;
        if(len<3){
            return 0;
        }
        Arrays.sort(array);
        int count=0;
        while(array[len-3]!=0){
            count  ;
            array[len-3]--;
            array[len-2]--;
            array[len-1]--;
            Arrays.sort(array);
        }
        return count;
    }*/
    public static int getMax1(int[] array){
        PriorityQueue<Integer> priorityQueue=new PriorityQueue(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2-o1;
            }
        });
        int len=array.length;
        if(len<3){
            return 0;
        }
        for (int i = 0; i <array.length ; i  ) {
            priorityQueue.add(array[i]);
        }
        boolean flag=true;
        int count=0;
        while (flag){
            int a=priorityQueue.poll();
            int b=priorityQueue.poll();
            int c=priorityQueue.poll();
            if(c>=1){
                count  ;
                priorityQueue.add(a-1);
                priorityQueue.add(b-1);
                priorityQueue.add(c-1);
            }else{
                flag=false;
            }


        };
        return count;

    }
}


#猿辅导##笔试题目#
全部评论
这是角色分组?
点赞 回复 分享
发布于 2019-08-24 23:42

相关推荐

11-27 17:08
已编辑
牛客_产品运营部_私域运营
腾讯 普通offer 24k~26k * 15,年包在36w~39w左右。
点赞 评论 收藏
分享
10-06 12:46
门头沟学院 Java
跨考小白:定时任务启动
点赞 评论 收藏
分享
Bug压路:老哥看得出来你是想多展示一些项目,但好像一般最多两个就够了😂页数一般一页,多的也就2页;这些项目应该是比较同质化的,和评论区其他大佬一样,我也觉得应该展示一些最拿手的(质量>数量)😁😁😁专业技能部分也可以稍微精简一些
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务