华为4.13软开笔试
#华为笔试#
100分:硬件最佳分配策略
200分:工费调度方案
300分:分糖果
第一题做了一个多小时95%
剩下两题来不及了,第二题0,第三题输出-5%
求第二题第三题答案
下面第一题代码
package exam.huawei;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int m = in.nextInt();
String ss = in.nextLine();
int[][] fu = new int[m][5];
for (int i = 0; i < m; i++) {
String s = in.nextLine();
String[] str = s.split(",");
int[] num = new int[str.length];
for (int k = 0; k < str.length; k++) {
num[k] = Integer.parseInt(str[k]);
}
fu[i][0] = num[0];
fu[i][1] = num[1];
fu[i][2] = num[2];
fu[i][3] = num[3];
fu[i][4] = num[4];
}
int[] xu = new int[6];
for (int i = 0; i < 6; i++) {
xu[i] = in.nextInt();
}
int[][] use1 = new int[m][5];
int j = 0;
for (int i = 0; i < m; i++) {
if (fu[i][1] >= xu[2]
&& fu[i][2] >= xu[3]
&& (fu[i][3] == xu[4] || xu[4] == 9)
&& (fu[i][4] == xu[5] || xu[5] == 2)) {
for (int k = 0; k < 5; k++) {
use1[j][k] = fu[i][k];
}
j++;
}
}
int[][] use = new int[j][5];
for (int i = 0; i < j; i++) {
for (int k = 0; k < 5; k++) {
use[i][k] = use1[i][k];
}
}
if (xu[1] == 1) {
Arrays.sort(
use,
(o1, o2) -> {
if (o1[1] == o2[1]) {
return o1[2] - o2[2];
}
return o1[1] - o2[1];
});
if (use.length > xu[0]) {
int[][] use11 = new int[xu[0]][5];
for (int i = 0; i < xu[0]; i++) {
for (int k = 0; k < 5; k++) {
use11[i][k] = use[i][k];
}
}
Arrays.sort(
use11,
Comparator.comparingInt(o -> o[0]));
System.out.print(xu[0]);
for (int i = 0; i < xu[0]; i++) {
System.out.print(" " + use11[i][0]);
}
} else {
Arrays.sort(
use,
Comparator.comparingInt(o -> o[0]));
System.out.print(use.length);
for (int i = 0; i < use.length; i++) {
System.out.print(" " + use[i][0]);
}
}
} else {
Arrays.sort(
use,
(o1, o2) -> {
if (o1[2] == o2[2]) {
return o1[1] - o2[1];
}
return o1[2] - o2[2];
});
if (use.length > xu[0]) {
int[][] use22 = new int[xu[0]][5];
for (int i = 0; i < xu[0]; i++) {
for (int k = 0; k < 5; k++) {
use22[i][k] = use[i][k];
}
}
Arrays.sort(
use22,
Comparator.comparingInt(o -> o[0]));
System.out.print(xu[0]);
for (int i = 0; i < xu[0]; i++) {
System.out.print(" " + use22[i][0]);
}
} else {
Arrays.sort(
use,
Comparator.comparingInt(o -> o[0]));
System.out.print(use.length);
for (int i = 0; i < use.length; i++) {
System.out.print(" " + use[i][0]);
}
}
}
}
}
查看20道真题和解析