使用 Python 最大化桶中球之间的最小力的程序
假设我们有几个桶和 x 个球。如果将球放入桶中,其中会产生一种特殊的力,我们必须找到一种方法来最大化两个球之间的最小力。在位置 p 和 q 的桶中两个球之间的力是 |p - q|。给我们的输入是包含桶位置和球数 x 的数组。我们必须找出它们之间的最小力。
因此,如果输入类似于 pos = [2, 4, 6, 8, 10, 12], x = 3,那么输出将为 4。
可以将球放入 12 个桶的阵列中的给定位置。这三个球可以放在位置 4、8 和 12,它们之间的功率将为 4。这个值不能再增加。
示例
让我们看看以下实现以更好地理解 -
def solve(pos, x):n = len(pos)
pos.sort()
def ball_count(d):
ans, curr = 1, pos[0]
for i in range(1, n):
if pos[i] - curr >= d:
ans += 1
curr = pos[i]
return ans
left, right = 0, pos[-1] - pos[0]
while left < right:
mid = right - (right - left) //2
if ball_count(mid) >= x:
left = mid
else:
right = mid - 1
return left
print(solve([2, 4, 6, 8, 10, 12], 3))
输入
[2, 4, 6, 8, 10, 12], 3输出结果
4
以上是 使用 Python 最大化桶中球之间的最小力的程序 的全部内容, 来源链接: utcz.com/z/363227.html