返回轨道
算法 · 2026-05-14 · 19 阅读

P36 二分搜索

算法 19 阅读

信号摘要

难度:Easy · 时长:04:04 · leetcode 704 · lintcode 457

P36 二分搜索

未对外公开播放权限
点击查看说明

描述

这个题目说的是,给你一个递增排序的整数数组 nums,和一个目标值 target。你要在数组里找到 target,然后返回它的下标。如果找不到则返回 -1。

比如说,给你的数组是:

-2, 0, 2, 4, 5, 8, 9

给你的目标值是 5。5 在这个数组中,找到后返回它的下标 4 即可。

代码

public class AlgoCasts {

  // Time: O(log(n)), Space: O(1)
  public int binarySearch(int[] nums, int target) {
    if (nums == null) return -1;

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

}

📡 通讯频道