进军大厂-从零开始算法基础(1)--力扣 golang

力扣704 二分查找

        

        这题主要做一个区间左右是否取值的练习,简单来讲就是根据自己预设的左右区间的开闭来确定左右边界位置与mid节点位置的关系,这里分两部分讨论。(这里的开区间或者闭区间都是自己做题时自己给这个题目设定的条件,建议保持自己通常的习惯就好)

        1.循环条件left与right的关系(第三行代码)。若预设为左右闭区间,那么极端情况就是[1]这种情况,只有一个元素,此时我们可以看到若我们要查找的就是1则必须保证有等号。若预设为左闭右开,极端情况为[1),此时我们可以看到这是矛盾的,因此我们不能让left等于right。

        2.left,right与mid位置数值的关系(6,8行代码)。这里只需要记住闭的方向不需要在下次循环中取值,开则需要,因为闭区间代表此值已经取过,且能取到右侧左边的值和左侧右边的值。开的一侧若在下次循环中不取这个值会导致右侧左边的值不在区间内。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值