题目:二分查找
存在问题的地方:
- 边界条件while(left __ right)中是 < 还是 <=
- 循环中if(nums[middle] > target) right = _____中是middle还是middle - 1
应该在区间上讨论:
- 左闭右闭:[ left , right ]
- 左闭右开:[ left , right )
- 左开右闭:( left , right ]
- 等等情况…
[ left , right ]时
初始:
left = 0
right = numsize - 1
目标:找target,有返回下标,没有返回-1
然后进入 while(left ____ right) 小于还是小于等于的 讨论
首先看区间定义,以左闭右闭的区间来写二分法代码。那么观察写小于等于在这个区间里是不是一个合法的区间。什么是合法区间,至少要符合这个区间的定义才是。小于等于也就是说多了一个left和right相等的情况,在这个区间内合不合法,举个例子数组只有1个元素1 那么 [ left , right ] 即 [ 1 , 1] ,合法
然后进行循环的查找
w