【二分查找刷题记1】

说老实话,我是想不出来的,看了一个回答,然后自己分析,自己思考,这就是小白吗?

我自己一点想法,二分法思路吧算是

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以内就可以跳出了。

总之,这道题我就是看着标准答案自己解析,自圆其说。

很想自己思考的,但不知道怎么下脑。哭了。

不过看我总结的思路应该会让我有一点收获去面对下一道二分吧!

手刃二分的是真的佩服,至少现在。

告辞

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值