Python【吃桃速度问题】

B站影视 电影资讯 2025-03-31 15:51 1

摘要:孙悟空需要在H小时内吃完N棵蟠桃树上的所有蟠桃。每棵蟠桃树i上有N[i]个蟠桃。孙悟空每小时可以选择一棵树吃掉K个蟠桃(如果树上的蟠桃少于K,则吃掉所有蟠桃,这一小时内不再吃其他树)。求可以在H小时内吃完所有蟠桃的最小整数K。

孙悟空需要在H小时内吃完N棵蟠桃树上的所有蟠桃。每棵蟠桃树i上有N[i]个蟠桃。孙悟空每小时可以选择一棵树吃掉K个蟠桃(如果树上的蟠桃少于K,则吃掉所有蟠桃,这一小时内不再吃其他树)。求可以在H小时内吃完所有蟠桃的最小整数K。

K的范围:最小可能为1(每小时吃1个),最大可能为max(N[i])(每小时吃最多的那棵树的全部蟠桃)。计算时间:对于给定的K,计算吃完所有蟠桃所需的时间。对于每棵树i,时间为ceil(N[i]/K),总时间为所有树的时间之和。二分查找:在可能的K范围内,使用二分查找找到满足总时间≤H的最小K。import mathdef min_eating_speed(piles, H):left = 1right = max(piles)while left

来源:笑愚教育

相关推荐