查找最大大小以截断日志以将它们完全存储在 Python 中的数据库中的程序
假设我们有一个称为日志的数字列表和另一个值限制。logs[i]中的每个元素表示第i个用户生成的日志的大小。限制代表我们可以存储在数据库中的日志总大小。我们必须找到最大的x,如果我们将日志中的每个日志截断为最大大小x,并且左日志大小的总和最多为limit。如果不需要截断日志,则只需返回最大的日志大小。
所以,如果输入像logs=[500,200,10000,500,4000]limit=3000,那么输出就会是900,因为我们把logstruncateto900,那么我们可以得到[500,200,900,500,900]现在总和是3000
示例
让我们看看以下实现以获得更好的理解-
def solve(logs, limit):
lo, hi = 0, max(logs) + 1
while lo + 1 < hi:
mi = lo + (hi - lo) //2
if sum(min(mi, log) for log in logs) <= limit:
lo = mi
else:
hi = mi
return lo
logs = [500, 200, 10000, 500, 4000]
limit = 3000
print(solve(logs, limit))输入
[500, 200, 10000, 500, 4000], 3000输出结果
900
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短