0
点赞
收藏
分享

微信扫一扫

Leetcode 704. 二分查找

松鼠树屋 2022-04-13 阅读 56

文章目录

题目链接

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;
}
  1. low < high的话“[5] 5”会不进入循环直接返回-1
  2. 注意上界下界减1加1
举报

相关推荐

0 条评论