文章目录
题目链接
704. 二分查找
代码
法一 暴力枚举
int search(int* nums, int numsSize, int target){
    for (int i = 0; i < numsSize; ++i) {
        if (target == nums[i])
            return i;
    }
    return -1;
}
法二 二分查找
int search(int* nums, int numsSize, int target){
    int low = 0, high = numsSize - 1;
    while (low <= high) {   // 1
        int mid = (low + high) / 2;
        if (nums[mid] > target) {
            high = mid - 1; // 2
        }
        else if (nums[mid] < target) {
            low = mid + 1; // 2
        }
        else {
            return mid;
        }
    }
    return -1;
}
- low < high的话“[5] 5”会不进入循环直接返回-1
- 注意上界下界减1加1










