在java程序中测试未授权的隐藏测试(代码战)
以下是作业:
我有4个输入数组,指示不同员工的信息
String[] names, boolean[] statuses, int[] projects, int[] tasks
它们将作为参数传递给我必须编写的方法。 输出应该是符合要求的员工的姓名
要求是:
- 每个数组的第i个元素属于第i个雇员。雇员人数各不相同
- 他/她的状态必须为false,该员工才能考虑下一个条件
- 例如,如果A和B的状态为假,则将选择任务数较少的一个,或任务数与另一个任务数相等但项目数较少的一个。对所有员工都这样做李>
- 返回此员工的姓名(字符串)
阵列的示例可能类似于:
names = ["John", "Martin"], statuses = [false, false],
projects = [2, 1] and tasks = [16, 5],
输出应为:
smartAssigning(names, statuses, projects, tasks) = "Martin".
这是我的代码:(这只是方法)
String smartAssigning(String[] names, boolean[] statuses, int[] projects, int[] tasks) {
String name = null;
int task = tasks[0];
int order = 0;
int mainOrder = 0;
int project;
int[] list = new int[names.length];
for (int i = 1; i < tasks.length; i++) {
if (tasks[i] < task && statuses[i] == false) {
task = tasks[i];
}
}
for (int i = 0; i < tasks.length; i++) {
if (task == tasks[i]) {
list[order] = i;
order++;
}
}
project = list[0];
if (order > 1) {
for (int i = 1; i < order; i++) {
if (project > projects[list[i]]) {
project = projects[list[i]];
mainOrder = list[i];
}
}
} else mainOrder = list[0];
return names[mainOrder];
}
问题是我无法通过11个可用测试中的2个。但是那两个是隐藏的。谁能给我一些建议
# 1 楼答案
请检查以下代码: 字符串智能分配(字符串[]名称、布尔[]状态、int[]项目、int[]任务){
# 2 楼答案
我在今天的一次采访中遇到了这个问题。 我的解决方案通过了所有测试用例。 基本上,我创建了一个包含所有给定值的hashmap,并根据需求对names数组进行排序。 这是我的解决方案