题目如下
https://leetcode.com/problems/magnetic-force-between-two-balls/
这里是按照二分查找数据的原理处理的,原理如下:
一个数组,下标为最小的距离,数组元素为最多可以容纳的球的数量。
这个数组单调递增。不过会有重复元素的出现,比如 n~m的距离,容纳的球的数量都是D个。这种情况下,m即为结果。
解题思路如下:
之所以是用
int mid = r - (r - l) / 2;
来查找中间位置,是因为需要通过这个找到最右边的m。