力扣704 二分查找
这题主要做一个区间左右是否取值的练习,简单来讲就是根据自己预设的左右区间的开闭来确定左右边界位置与mid节点位置的关系,这里分两部分讨论。(这里的开区间或者闭区间都是自己做题时自己给这个题目设定的条件,建议保持自己通常的习惯就好)
1.循环条件left与right的关系(第三行代码)。若预设为左右闭区间,那么极端情况就是[1]这种情况,只有一个元素,此时我们可以看到若我们要查找的就是1则必须保证有等号。若预设为左闭右开,极端情况为[1),此时我们可以看到这是矛盾的,因此我们不能让left等于right。
2.left,right与mid位置数值的关系(6,8行代码)。这里只需要记住闭的方向不需要在下次循环中取值,开则需要,因为闭区间代表此值已经取过,且能取到右侧左边的值和左侧右边的值。开的一侧若在下次循环中不取这个值会导致右侧左边的值不在区间内。