学习文章: [数组理论基础](https://programmercarl.com/数组理论基础.html)
### 704. 二分查找
学习视频: [手把手带你撕出正确的二分法 | 二分查找法 | 二分搜索法 | LeetCode:704. 二分查找](https://www.bilibili.com/video/BV1fA4y1o715/?vd_source=4d69a77a9acd27ece61c2597da6c8379)
while条件应该使符合条件的区间合法, 更新左右边界应该刚好排除不可能的index.
对于[left, right]区间, while条件应该为left<=right, 更新左边界方法: left=mid+1 ,更新右边界方法: right=mid-1;
对于[left, right)区间, while条件应该为left<right, 更新左边界方法: left=mid+1 ,更新右边界方法: right=mid;
```java
class Solution {
public int search(int[] nums,int target) {
int left =0;
int right = nums.length;
int mid;
while (left < right) {
mid = left + (right - left) /2;
if (target > nums[mid]) {
left = mid +1;
}else if (target < nums[mid]) {
right = mid;
}else return mid;
}
return -1;
}
}
```