华为OD机试题目分享(2022Q2)
运气比较好,三道题都挺简单,通过全部测试用例
第一题. 输入一个整型数组和一个正整数N,排序去重后输出这个数组中最大的N个数和最小的N个数的和,要求不允许最大的N个数和最小的N个数有重复,如果有重复就输出-1
直接一个TreeSet搞定
第二题. 根据输入判断不等式组是否成立
不等式组如:
a11*x1+a12*x2+a13*x3+a14*x4+a15*x5<=b1; a21*x1+a22*x2+a23*x3+a24*x4+a25*x5<=b2; a31*x1+a32*x2+a33*x3+a34*x4+a35*x5<=b3;系数a为double类型,变量x为int,目标值b为double,不等式符号可能为<,<=,>,>=,=
输入描述:是一个字符串,先是系数a的二维数组,然后是x的数组,然后是b的数组,然后是符号的数组;数组之间用分号隔开,数组中元素之间用逗号隔开
例如: 1.1,2.0,4,3.1,7.9;5.2,6.3,0.7,1,9.8;3,5.5,11.1,8.6,9.9;4,5,6,7,8;21.1,30.5,0.8;<=,<=,>=
输出描述:
1.不等式组是否成立(true/false)
2.输出最大差 max{ (a11*x1+a12*x2+a13*x3+a14*x4+a15*x5-b1) , (a21*x1+a22*x2+a23*x3+a24*x4+a25*x5-b2) , (a31*x1+a32*x2+a33*x3+a34*x4+a35*x5-b3) } 的整数部分
题干比较长,只能描述个大概,做起来挺简单,将字符串split解析出每个元素再计算和判断就好
第三题. 报文解析
其实就是字符串转换,将n[str]转换为n个str拼接,题目对输入描述的比较详细,我也记不太清了,总之就是不会有极端例子出现;
输入例如:3[m2[c]],则输出 mccmccmcc
这个直接用递归暴力破解的