华为od前端机试题(回忆版)

第一题

统计误码频率最高的且长度最短的字符子串(哈希表)

误码编号1~255(好像),当编码为0时,不是误码。数组长度1~1000。

第一行输入时数组长度,第二行输入是误码编号数组

测试用例1

输入

5

1 2 2 4 1

输出

2

解释:该数组中出现误码频率最高的字符字串是'2'和'1',都出现了2次。但'2'截取的子串数组是[2,2],而'1'截取的字串数组是[1,2,2,4,1],前者的长度更短,所以输出2

个人感悟:测试用例过了90%。我的思路是用哈希表统计了每个误码的出现索引数组,例如1=>[0,4] 2=>[1,2] 4=>[3],然后对哈希表的值数组进行降序排序,找到出现频率最高的,计算下对应索引截取字符串的长度。若有多个频率最高,就分别计算对应索引截取字符串的长度,以测试用例为例,就是4-0+1 和 2-1+1,两个结果分别是5和2,最短的子串就是2。至于只过了90%,我估计是0的情况有些没考虑到,我也懒得去找,就下一题了。

第二题

统计友好度最大值(我直接暴力模拟了)

给你一组数组,里面只有1,0,2三个元素,0代表公司新人,1代表公司老人,2代表障碍物。每个新人的友好度是他左右所有老人的和,但

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值