首页 > 华为机试二星题--导师请吃火锅
头像
晚妹爱玩卡特
编辑于 2022-10-28 14:24 湖北
+ 关注

华为机试二星题--导师请吃火锅 内部员工回复

标题: 导师请吃火锅 | 时间限制: 1秒 | 内存限制: 262144K | 语言限制: 不限
入职后,导师会请你吃饭,你选择了火锅。
火锅里会在不同时间下很多菜。
不同食材要煮不同的时间,才能变得刚好合适。你希望吃到最多的刚好合适的菜,但是你的手速不够快,用m代表手速,每次下手捞菜后至少要过m秒才能再捞(每次只能捞一个)。
那么用最合理的策略,最多能吃到多少刚好合适的菜?

这道题我觉得有个误区,就是要不要夹第一道菜,我认为是一定要夹的,原因如下:
如果担心夹了第一道菜无法夹后面的菜,假设后面不能夹起的最后一道菜在列表中的下标是i,那么不夹第一道菜就是为了夹起这第i道菜,假设不夹第一道(此时下标为0),夹第i道,那第i+1道菜如果能夹起,那么不夹第i道菜而夹第1道菜是一定能夹起第i+1道菜的,但是不夹第1道菜而夹第i道菜不一定能夹起第i+1道菜。所以直接夹第一道,代码就很简单了,用python3
n,m=map(int,input().split())
d=set()
for i in range(n):
    d.add(sum(map(int,input().split())))
l=sorted(list(d))
count=1
t=0
for i in range(1,len(l)):
    if l[i]-l[t]>=m:
        count+=1
        t=i
print(count)


全部评论

(3) 回帖
加载中...
话题 回帖
历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐