有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中的分布式解决方案

分发奖牌这是奖牌分发仪式。10^6名警察,编号从1到10^6,排成一行。奖牌分配有N (1<=N<=1000)次迭代。在{}{}迭代中{}的所有官员都获得了奖章

如果我们从大副开始计算奖牌数量,那么累积金额超过给定奖牌的大副是谁

输入/输出规格输入格式:

您将获得5个输入:

  1. input1=N,迭代次数
  2. input2=计数,每次迭代中奖牌计数的数组
  3. input3=from,每次迭代中的起始索引数组
  4. input4=to,每次迭代中结束索引的数组
  5. input5=阈值,奖牌计数阈值

输出格式:

一个整数,表示第一副的数量,使得从第一副到该副的奖牌累计总数超过阈值。如果不存在此类官员,则输出应为-1


共 (2) 个答案

  1. # 1 楼答案

    这是c语言的作品

    public static int DistributingMedals(int input1, int[] input2, int[] input3, int[] input4, int input5)
    {
        int officerIndex = -1;
        if (InputsValid(input1, input2, input3, input4, input5))
        {
            int medalsCount = 0;
            for (int i = 0; i < input1; i++)
            {
                for (int o = input3[i]; o <= input4[i]; o++)
                {
                    medalsCount += input2[i];
                    if (medalsCount > input5)
                    {
                        officerIndex = o;
                        break;
                    }
                }
                if (medalsCount > input5)
                    break;
            }
        }
        return officerIndex;
    }
    
    private static bool InputsValid(int input1, int[] input2, int[] input3, int[] input4, int input5)
    {
        if (((1 <= input1) && (input1 <= 1000))
            && ((input2.Length == input1) && (input3.Length == input1) && (input4.Length == input1))
            && ((1 <= input5) && (input5 <= 1000000000)))
        {
            int ok = 0;
            for (int i = 0; i < input1; i++)
            {
                if ((1 <= input3[i] && input3[i] <= input4[i] && input4[i] <= 1000000)
                    && (1 <= input2[i] && input2[i] <= 100))
                    ok++;
            }
            if (ok == input1)
                return true;
        }
        return false;
    }
    
  2. # 2 楼答案

    In Java#
               -
    
    public class CandidateCode 
    { 
        public static void main(String[] args) {
            int answer = DistributingMedals(1,new int[]{1},new int[]{1},new int[]{10},2);
            System.out.println(answer);
        }
    
        /**
         * 
         * @param input1 = N, the number of iterations
         * @param input2 = count, the array of medal counts in each iteration
         * @param input3 = from, the array of starting indices in each iteration
         * @param input4 = to, the array of ending indices in each iteration
         * @param input5 = THRESHOLD, the medal count threshold
    
         * @return
         */
    
        public static int DistributingMedals(int input1,int[] input2,int[] input3,int[] input4,int input5)
        {
    
            int officerIndex = -1;
            if (InputsValid(input1, input2, input3, input4, input5))
            {
                int medalsCount = 0;
                for (int i = 0; i < input1; i++)
                {
                    for (int o = input3[i]; o <= input4[i]; o++)
                    {
                        medalsCount += input2[i];
                        if (medalsCount > input5)
                        {
                            officerIndex = o;
                            break;
                        }
                    }
                    if (medalsCount > input5)
                        break;
                }
            }
            return officerIndex;
    
        }   
    
    
        private static boolean InputsValid(int input1, int[] input2, int[] input3, int[] input4, int input5)
        {
            if (((1 <= input1) && (input1 <= 1000))
                && ((input2.length == input1) && (input3.length == input1) && (input4.length == input1))
                && ((1 <= input5) && (input5 <= 1000000000)))
            {
                int ok = 0;
                for (int i = 0; i < input1; i++)
                {
                    if ((1 <= input3[i] && input3[i] <= input4[i] && input4[i] <= 1000000)
                        && (1 <= input2[i] && input2[i] <= 100))
                        ok++;
                }
                if (ok == input1)
                    return true;
            }
            return false;
        }
    }