题目
该类型的题目
5489. 两球之间的磁力
410. 分割数组的最大值
LCP 12. 小张刷题计划(410变体,这个才应该是困难吧😥)
解题思路
最大化最小值 / 最小化最大值 都是采用二分方法,只是二分过程中一旦某个值满足条件后,移动方向的不同,最大化最小值是放大左端的值,最小化最大值是缩小右端的值。
这类题目(根据目前见到的)一般是将数组划分为m个连续的子数组。或者题目中已经提及了最大化最小值这种关键词。
代码实现
"""
5489
"""
class Solution:
def maxDistance(self, position, m: int) -> int:
position.sort()
# 判断该间隔是否能放置m个部分
def check(step):
res, next, l = 1, position[0] + step, 1
while l < len(position):
while l < len(position) and position[l] < next:
l +=