【新2023】华为OD机试 - 吃火锅(Python)

华为OD机试题中的一道题目,涉及火锅与食材的模拟。要求在有限的手速下,计算最多能吃到多少刚好合适的菜品。解题采用贪心算法,对食材的准备时间进行排序,以达到最大收益。提供Python代码实现及运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

华为 OD 清单查看地址:blog.youkuaiyun.com/hihell/category_12199275.html

吃火锅

题目

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

输入

第一行两个整数nm
其中n代表往锅里下菜的个数
m代表手速
接下来有n行,
每行有两个数xy
代表第x秒下的菜过y秒才能变得刚好合适(1 < mn < 1000),(1 < xy < 1000

输出描述

输出一个整数代表用最合理的策略,最多能吃到刚好合适的菜的数量

示例一

输入

2 1
1 2
2 1

输出

1

说明

一共下了两个菜,在第一秒下的菜,需要到第三秒吃。
在第二秒下的菜,也要到第三秒吃,所以只能吃一个

示例二

输入

3 1
1 2
1 3
2 3

输出

3

说明

一共下了三个菜,每秒捞一个,第一个在第一秒下的菜,
需要到第三秒吃,第二个在第一秒下的菜需要到第四秒吃,
在第二秒下的菜,需要到第五妙吃,所以三个都能吃

编码思路

贪心算法的问题

核心知识点

贪心算法:在每个阶段选择当前最优的解,从而希望能够得到全局最优解的算法。这种算法通常需要证明选择当前最优解能够推导出全局最优解。
排序:在本题中,需要对 arrTime 数组进行排序,得到到达时间从小到大的顺序。

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想橡皮擦

如有帮助,来瓶可乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值