【华为机试】2024年真题C卷(java)-孙悟空吃蟠桃

【华为机试】2024年真题C卷汇总(java)

一、题目

题目描述:

孙悟空爱吃蟠桃,有一天趁着蟠桃园守卫不在来偷吃。已知蟠桃园有N颗桃树,每颗树上都有桃子,守卫将在H小时后回来。
孙悟空可以决定他吃蟠桃的速度K(个/小时),每个小时选一颗桃树,并从树上吃掉K个,如果树上的桃子少于K个,则全部吃掉,并且这一小时剩余的时间里不再吃桃。
孙悟空喜欢慢慢吃,但又想在守卫回来前吃完桃子。
请返回孙悟空可以在H小时内吃掉所有桃子的最小速度K(K为整数)。如果以任何速度都吃不完所有桃子,则返回0。

二、输入输出

输入描述:
第一行输入为N个数字,N表示桃树的数量,这N个数字表示每棵桃树上蟠桃的数量。
第二行输入为一个数字,表示守卫离开的时间H。
其中数字通过空格分割,N、H为正整数,每棵树上都有蟠桃,且0

输出描述:
吃掉所有蟠桃的最小速度K,无解或输入异常时输出0。

三、示例

示例1:
输入:
2 3 4 5
4
输出:
5
示例2:
输入:
2 3 4 5
3
输出:
0
示例3:
输入:
30 11 23 4 20
6
输出:
23

【华为机试】2024年真题C卷(java)-孙悟空吃蟠桃_第1张图片

四、解题思路

通过二分搜索的方式,逐步缩小速度的范围,最终找到满足在给定时间内吃完所有桃子的最小速度K。如果无解或输入异常,返回0。

五、参考代码 

你可能感兴趣的:(华为od,java,华为,算法,华为机试,孙悟空吃蟠桃)