华为OD机试 | 回忆版

【2022年4月6日】

1、求最小绝对值之和

给定一个随机的整数数组(可能存在正整数和负整数)nums, 请你在该数组中找出两个数,其和的绝对值(|nums[x]+nums[y]|)为最小值 并返回这个最小值。 每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。

输入描述:

一个通过空格空格分割的有序整数序列字符串,最多1000个整数, 且整数数值范围是[-65535,65535]

输出描述:

两个数和两数之和绝对值

示例一:

输入

 -1 -3 7 5 11 15

输出

2

说明: 因为|nums[0]+nums[2]|=|-3+5|=2最小, 所以返回2

2、判断数组的运算是否正确

a11x1 + a12x2 + a13x3 + a14x4 > b1

a21x1 + a22x2 + a23x3 + a24x4 >= b2

a31x1 + a32x2 + a33x3 + a34x4 < b3

a41x1 + a42x2 + a43x3 + a44x4 <= b4

  • ai,bi是double类型的;xi是int类型的;判断符有"<", "<=", ">", ">=", "=".
  • 需要判断式子是否正确,全部正确返回true;否则返回式子和bi的最大差值

输入

2.3,3,5.6,7,6;11,3,8.6,25,1;0.3,9,5.3,66,7.8;1,3,2,7,5;340,670,80.6;<=,<=,<=

输出

false

3、生成新的最小数

输入一个字符串类型的数据NUM1,可以任意删掉k个数字得到NUM2,求最小的NUM2。

输入

2615371
4

输出

131

说明:要求删掉4个数字,先删掉6、5、7,剩下的是2131,删掉3得211,删掉2得131,131最小,故结果为131.


【我的用例通过率】

第一题:95%(满分100)

第二题:50%(满分100)

第三题:40%(满分200)

[个人感受]

第一题:还算简单的,但可能是某个场景没有考虑到,所以只通过了95%。

第二题:一开始是蒙的,看到这么多个数,有点不做所措。然后冷静下来分析,其实就是对一堆输入进行计算,就是输入的数据有点多而且不好处理罢了。有了思路之后就按着自己的思路写程序了,但是用例通过率只有50%。

第三题:这是200分的题,但个人觉得比第二题还要好理解。考虑到示例的场景,我是先删掉k-1个最小的,剩下的一个考虑到特殊情况,我是每个字符都尝试着删掉一遍,然后比较大小,选出最小的。最后的样例通过率为40%。

最大的感受:考虑测试样例真的很重要,很多时候,就算你有思路了,但是样例想得不够周全也还是达不到高的通过率,这也是我目前的不足之处。

全部评论

相关推荐

评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客企业服务