-2
が割り当てである:Unpassed隠された試験(codefights)
彼らは私が持っていたメソッドにパラメータとして渡される
String[] names, boolean[] statuses, int[] projects, int[] tasks
異なる従業員の情報を示す4つの入力配列を有します書く。 出力が要求
を要件を満たしている従業員の名前であるべきである。各アレイの
- I ^番目の要素は、I ^番目の従業員に属します。従業員の数はと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つを通過できなかったことです。しかし、その2人は隠されていた。誰でも私にいくつかの提案を与えることができますか?
私は何をするあなたを教えていますか分かりません(同じ配列について異なる情報を保持する複数の配列)がありますが、実際にはEmployeeクラスを作成する必要があります。 –
いいえ、私はcodefights、コーディングのウェブサイトからこれを得ました – allicanseenow