Java 识别失败的测试用例

Java 识别失败的测试用例,java,Java,我参加过编码竞赛,在竞赛中我尝试了给定的问题,所以我应该想出解决方案,不仅要通过所有的测试用例,而且在时间和空间复杂度方面也进行了很好的优化,我通过了7个测试用例中的3个,但我仍然无法识别其余的测试用例,我可能遗漏了什么,请帮我纠正下面的问题陈述 问题陈述: Powerpuff女孩(100马克) 乌托尼姆教授因为世界上犯罪率的增加而坐立不安。恶棍的数量和他们的活动在很大程度上增加了。目前的三个Powerpuff女孩无法很好地与全世界的邪恶作斗争。教授决定用他所拥有的原料创造出最多数量的泡芙女孩

我参加过编码竞赛,在竞赛中我尝试了给定的问题,所以我应该想出解决方案,不仅要通过所有的测试用例,而且在时间和空间复杂度方面也进行了很好的优化,我通过了7个测试用例中的3个,但我仍然无法识别其余的测试用例,我可能遗漏了什么,请帮我纠正下面的问题陈述

问题陈述:

Powerpuff女孩(100马克)

乌托尼姆教授因为世界上犯罪率的增加而坐立不安。恶棍的数量和他们的活动在很大程度上增加了。目前的三个Powerpuff女孩无法很好地与全世界的邪恶作斗争。教授决定用他所拥有的原料创造出最多数量的泡芙女孩

有N种成分需要在一定的数量,以创造一个粉扑女孩。教授在他的实验室里有所有的N种成分,并且知道每种可用成分的数量。他还知道制作一个泡芙女孩所需的特定成分的数量。教授正忙于准备工作,想尽快开始

另一方面,这些恶棍们想要摧毁实验室,阻止乌托尼厄姆教授创造更多的女强人。莫乔·乔乔准备好了弹药,他正在带领其他恶棍,如公主、阿米巴男孩、塞杜萨、甘格林帮派等

教授的时间不多了,因为坏人很快就会到达实验室。他正在开始这一过程,但不知道将创造多少名Powerpuff女孩。他需要你的帮助来确定最大数量的Powerpuff女孩,这将与当前数量的成分创造

例如:

Utonium教授需要3种成分来制作Powerpuff女孩。3种成分以给定数量存在于实验室中:

要想成为一个蓬松的女孩,乌托尼厄姆教授需要:

3单位成分A

6单位成分B

10单位成分C

可以创建的Powerpuff女孩的最大数量是3个,3个之后,教授将用完成分C。

你能确定最大的数目吗

输入格式

输入的第一行由成分的数量N组成

第二行输入由N个空格分隔的整数组成,这些整数表示创建Powerpuff Girl所需的每种成分的数量

第三行输入由N个空格分隔的整数组成,表示实验室中存在的每种成分的数量

Constraints

1<= N <=10000000 (1e7)

0<= Quantity_of_ingredient <= LLONG_MAX 
Output Format
解决方案代码

package com.mzk.poi;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class PowerPuffGirls {

    private static final String SPACE = " ";
    private static final Integer INITAL_IDX = 0;
    private static final Integer LOWER_IDX = 1;
    private static final Integer SECOND_IDX = 2;
    private static final Integer MAX_LINES = 3;
    private static final Integer UPPER_IDX = 1000000;
    private static String[] UnitsArr = null;
    private static String[] totIngrdientsArr = null;
    private static int size = 0;

    public static void main(String[] args) {
        List<Integer> maxPowerPuffGirlsCreationList = new ArrayList<Integer>();
        Scanner stdin = new Scanner(System.in);
        String[] input = new String[MAX_LINES];
        try {
            for (int i = 0; i < input.length; i++) {
                input[i] = stdin.nextLine();
                if (validateIngredienInput(input[INITAL_IDX])) {
                    System.exit(INITAL_IDX);
                }
            }
        } finally {
            stdin.close();

        }
        int numOfIngredients = Integer.parseInt(input[INITAL_IDX]);
        String units = input[LOWER_IDX];
        UnitsArr = units.split(SPACE);
        String ingredients = input[SECOND_IDX];
        totIngrdientsArr = ingredients.split(SPACE);

        size = UnitsArr.length;
        int[] specifiedArrayOfUnits = convertToIntegerArray(UnitsArr);
        int[] totIngredientInLabArray = convertToIntegerArray(totIngrdientsArr);
        for (int i = 0; i < size; i++) {
            totIngredientInLabArray[i] = Integer.parseInt(totIngrdientsArr[i]);
        }

        for (int i = 0; i < numOfIngredients; i++) {
            maxPowerPuffGirlsCreationList.add(totIngredientInLabArray[i] / specifiedArrayOfUnits[i]);
        }
        System.out.println(Collections.min(maxPowerPuffGirlsCreationList));

    }
    /**
     * This method validates the first input 
     * @param noOfIngredients
     * @return boolean
     */
    private static boolean validateIngredienInput(String noOfIngredients) {
        int numOfIngredients = Integer.parseInt(noOfIngredients);
        boolean result = false;
        if (numOfIngredients <= LOWER_IDX && numOfIngredients <= UPPER_IDX) {
            result = true;
            return result;
        }
        return result;
    }

    /**
     * This utility method convert the String array to Integer array
     * @param size
     * @param specifiedArrayOfUnits
     * @return int[]
     */
    private static int[] convertToIntegerArray(String[] arrayToBeParsed) {
        int array[] = new int[size];
        for (int i = INITAL_IDX; i < size; i++) {
            array[i] = Integer.parseInt(arrayToBeParsed[i]);
        }
        return array;
    }
}
package com.mzk.poi;
导入java.util.ArrayList;
导入java.util.Collections;
导入java.util.List;
导入java.util.Scanner;
公共阶层的女强人{
私有静态最终字符串空间=”;
私有静态最终整数INITAL_IDX=0;
私有静态最终整数LOWER_IDX=1;
私有静态最终整数SECOND_IDX=2;
私有静态最终整数MAX_line=3;
私有静态最终整数上限_IDX=1000000;
私有静态字符串[]UnitsArr=null;
私有静态字符串[]totIngrdientsArr=null;
私有静态int size=0;
公共静态void main(字符串[]args){
List maxPowerPuffGirlsCreationList=new ArrayList();
扫描仪标准输入=新扫描仪(System.in);
字符串[]输入=新字符串[最大行数];
试一试{
for(int i=0;i如果您的代码存在以下几个问题:


你的
if()
条件没有任何意义。你正在检查不同成分的数量是否
你的代码有几个问题:


您的
if()
条件没有任何意义。您正在检查约束中不同成分的数量是否为
,其中提到-“0请您的问题包括您所说的“识别”的说明"失败的测试。根据您运行测试的方式,测试框架应该告诉您哪些测试失败了,哪些通过了。然后您可以轻松地指出/查看失败的测试。我在techgig的环境中运行了此代码,它运行了10个测试用例,其中我的代码只通过了3个,我希望你们能帮助我确定测试用例在约束条件中可能出现t种情况。有人提到-“0请在您的问题中说明您的意思b
package com.mzk.poi;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class PowerPuffGirls {

    private static final String SPACE = " ";
    private static final Integer INITAL_IDX = 0;
    private static final Integer LOWER_IDX = 1;
    private static final Integer SECOND_IDX = 2;
    private static final Integer MAX_LINES = 3;
    private static final Integer UPPER_IDX = 1000000;
    private static String[] UnitsArr = null;
    private static String[] totIngrdientsArr = null;
    private static int size = 0;

    public static void main(String[] args) {
        List<Integer> maxPowerPuffGirlsCreationList = new ArrayList<Integer>();
        Scanner stdin = new Scanner(System.in);
        String[] input = new String[MAX_LINES];
        try {
            for (int i = 0; i < input.length; i++) {
                input[i] = stdin.nextLine();
                if (validateIngredienInput(input[INITAL_IDX])) {
                    System.exit(INITAL_IDX);
                }
            }
        } finally {
            stdin.close();

        }
        int numOfIngredients = Integer.parseInt(input[INITAL_IDX]);
        String units = input[LOWER_IDX];
        UnitsArr = units.split(SPACE);
        String ingredients = input[SECOND_IDX];
        totIngrdientsArr = ingredients.split(SPACE);

        size = UnitsArr.length;
        int[] specifiedArrayOfUnits = convertToIntegerArray(UnitsArr);
        int[] totIngredientInLabArray = convertToIntegerArray(totIngrdientsArr);
        for (int i = 0; i < size; i++) {
            totIngredientInLabArray[i] = Integer.parseInt(totIngrdientsArr[i]);
        }

        for (int i = 0; i < numOfIngredients; i++) {
            maxPowerPuffGirlsCreationList.add(totIngredientInLabArray[i] / specifiedArrayOfUnits[i]);
        }
        System.out.println(Collections.min(maxPowerPuffGirlsCreationList));

    }
    /**
     * This method validates the first input 
     * @param noOfIngredients
     * @return boolean
     */
    private static boolean validateIngredienInput(String noOfIngredients) {
        int numOfIngredients = Integer.parseInt(noOfIngredients);
        boolean result = false;
        if (numOfIngredients <= LOWER_IDX && numOfIngredients <= UPPER_IDX) {
            result = true;
            return result;
        }
        return result;
    }

    /**
     * This utility method convert the String array to Integer array
     * @param size
     * @param specifiedArrayOfUnits
     * @return int[]
     */
    private static int[] convertToIntegerArray(String[] arrayToBeParsed) {
        int array[] = new int[size];
        for (int i = INITAL_IDX; i < size; i++) {
            array[i] = Integer.parseInt(arrayToBeParsed[i]);
        }
        return array;
    }
}
try {
    for (int i = 0; i < input.length; i++) {
        input[i] = stdin.nextLine();
        if (validateIngredienInput(input[INITAL_IDX])) {
            System.exit(INITAL_IDX);
        }
    }
} finally {
    stdin.close();
}
for (int i = 0; i < input.length; i++) {
    input[i] = stdin.nextLine();
}
if (!validateIngredienInput(input[INITAL_IDX])) {
    System.exit(...);
}
private static boolean validateIngredienInput(String noOfIngredients)
{
    int numOfIngredients = Integer.parseInt(noOfIngredients);
    boolean result = false;
    if (numOfIngredients <= LOWER_IDX && numOfIngredients <= UPPER_IDX) {
        result = true;
        return result;
    }
    return result;
}
private static boolean validateIngredienInput(String noOfIngredients)
{
    int numOfIngredients = Integer.parseInt(noOfIngredients);
    return numOfIngredients > 0;
}
UnitsArr = units.split(SPACE);
unitsArr = units.split(SPACE);
Constraints
1<= N <=10000000 (1e7)
0<= Quantity_of_ingredient <= LLONG_MAX 
int[] totIngredientInLabArray = convertToIntegerArray(totIngrdientsArr);
for (int i = 0; i < size; i++) {
   totIngredientInLabArray[i] = Integer.parseInt(totIngrdientsArr[i]);
}