二分法找错误简直是个玄学!!!

二分法:

二分法的时候难买出现各种各样的小bug,小到找了好几遍都找不到错在哪里?

那么哪里是需要我们警惕的呢?

1、不再单独使用字母 l ,相信我,在有的时候,我们菜鸟是发现不了 l 和 1 的区别的时候(在这里显示的却很清楚)

l
1

那上面的如果没有颜色的差别,不知道大家,反正我是分不清的。。


2、我们看下面的一段代码,是力扣上面的一道题,可能大佬一看就知道哪里错了,但是我是搞了半天没发现我哪里有问题,去看大家的题解才发现,我错哪里了,问题是啥呢?大家先看看

class Solution:
    def mySqrt(self, x: int) -> int:
        light,right,ans = 0,x,-1
        while light < right:
            mid = (light+right) // 2
            if mid * mid <= x:
                ans = mid
                light = mid + 1
            else:
                right = mid - 1
        return ans

→相信聪明的你肯定早就发现了,问题就在于while 判断的时候,少了一个 = (等号),结果浪费了好几分钟


解决方案:

警惕任何之前发生过问题的地方,下次要着重的看
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值