codeTop100题(35)704. 二分查找

66 阅读1分钟

1. 题目

704. 二分查找

2. 分析

这题是一道很简单的二分查找算法。

  • 定义左右指针、mid指针
  • 计算mid = (左+右)/ 2
  • 当mid等于目标值的时候,返回mid
  • 当mid小于目标值的时候,将l = mid + 1
  • 否则 r = mid-1
  • 一直循环到l > r

3. 代码

public int search(int[] nums, int target) {
    int l = 0, r = nums.length - 1, mid;
    while (l < r) {
        mid = (l + r) / 2;
        if (nums[mid] == target) {
            return mid;
        }
        if (nums[mid] > target) {
            r = mid - 1;
        } else {
            l = mid + 1;
        }
    }
    return -1;
}