二分查找
收获:补上之前左闭右开的知识漏洞。对左闭右闭和左闭右开有了更深的理解。
bug:mid应在每次左右指针更新时,也相对应的更新,mid初始化应放在while循环内部。
左闭右开
右指针指向的值不可能是target
while (left < right),这里使用 < ,因为left == right在区间[left, right)是没有意义的
if (nums[middle] > target) right 更新为 middle,因为当前nums[middle]不等于target,去左区间继续寻找,而寻找区间是左闭右开区间,所以right更新为middle,即:下一个查询区间不会去比较nums[middle]
移除元素(一遍过)
快慢指针法(一遍过)