Java中的分布式解决方案

Java中的分布式解决方案,java,Java,分发奖牌这是奖牌分发仪式。10^6名警察,编号从1到10^6,排成一行。有N(1这是c#语言的工作 公共静态int分布奖章(int-input1、int[]input2、int[]input3、int[]input4、int-input5) { int officeindex=-1; if(输入有效(输入1、输入2、输入3、输入4、输入5)) { int medalsCount=0; 对于(int i=0;i输入5) 打破 } } 返回证书索引; } 私有静态bool-InputsValid(i

分发奖牌这是奖牌分发仪式。10^6名警察,编号从1到10^6,排成一行。有
N(1这是c#语言的工作

公共静态int分布奖章(int-input1、int[]input2、int[]input3、int[]input4、int-input5)
{
int officeindex=-1;
if(输入有效(输入1、输入2、输入3、输入4、输入5))
{
int medalsCount=0;
对于(int i=0;i输入5)
打破
}
}
返回证书索引;
}
私有静态bool-InputsValid(int-input1、int[]input2、int[]input3、int[]input4、int-input5)
{
Java中的if((1
)#
-----------------------
公共类候选代码
{ 
公共静态void main(字符串[]args){
int answer=分配奖牌(1,新int[]{1},新int[]{1},新int[]{10},2);
System.out.println(应答);
}
/**
* 
*@param input1=N,迭代次数
*@param input2=count,每次迭代中奖牌数量的数组
*@param input3=from,每次迭代中的起始索引数组
*@param input4=to,每次迭代中结束索引的数组
*@param input5=阈值,奖牌计数阈值
*@返回
*/
公共静态整数分配奖牌(整数输入1、整数[]输入2、整数[]输入3、整数[]输入4、整数输入5)
{
int officeindex=-1;
if(输入有效(输入1、输入2、输入3、输入4、输入5))
{
int medalsCount=0;
对于(int i=0;i输入5)
打破
}
}
返回证书索引;
}   
私有静态布尔InputsValid(int-input1、int[]input2、int[]input3、int[]input4、int-input5)
{

如果你需要从你的算法开始,编写一些代码。如果这不起作用,请在这里向你的代码寻求帮助。事实上,我没有理解到底是什么问题。我要做的基本是不是通过所有的测试用例,只有一个测试用例通过。你能给出你的测试用例吗。
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;
}
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;
    }
}