说老实话,我是想不出来的,看了一个回答,然后自己分析,自己思考,这就是小白吗?
我自己一点想法,二分法思路吧算是
1.区间
2.缩小区间的判定条件
3.跳出查找的条件
这里进度需要有一个小小的处理,就觉得挺妙的。
因为浮点数类型精确度比较很麻烦,不准确。我们将输入的数*100就好啦~
1.区间显然就就是所有长度的最大值max 和0。这里有一个点,是我在上面也写出来的。因为后面判准条件是小数点后两位,这里就是1.所以为了防止网线都一样长的这种情况,需要high=max+1.而low也是如此。
2.缩小区间条件也是看所取的mid是否能满足k个人。cnt就是用来记住可以满足的人数,如果cnt<k的话,说明取长了,high=mid,取左半边。反之就取短了,low=mid,右半边。(这种情况是可以满足k个人的,不过可能还可以大一点!)
3.跳出条件就是精度的判准了。当high和low的距离在1以内就可以跳出了。
总之,这道题我就是看着标准答案自己解析,自圆其说。
很想自己思考的,但不知道怎么下脑。哭了。
不过看我总结的思路应该会让我有一点收获去面对下一道二分吧!
手刃二分的是真的佩服,至少现在。
告辞