Chaturmind
LearnDSASystem DesignBlogPremium
Sign inGet started
Chaturmind

Structured learning paths for engineers who want to go deep. Written by practitioners.

Learn

  • Java
  • DSA
  • System Design
  • Spring Boot
  • AI / ML

Company

  • Blog
  • Premium
  • Contact

Legal

  • Privacy Policy
  • Terms of Service

© 2026 Chaturmind. All rights reserved.

Built for engineers who want to go deep.

DSA›Binary Search›Binary Search
EasyBinary Search

Binary Search

binary-searcharray

Problem

Given an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, return its index. Otherwise, return -1.

You must write an algorithm with O(log n) runtime complexity.

Examples

Example 1

Input: nums = [-1,0,3,5,9,12], target = 9

Output: 4

Explanation: 9 exists at index 4.

Example 2

Input: nums = [-1,0,3,5,9,12], target = 2

Output: -1

Explanation: 2 not in nums.

Constraints

  • •1 <= nums.length <= 10^4
  • •All integers in nums are unique.
  • •-10^4 < nums[i], target < 10^4

Hints

Hint 1

Left + (right - left) / 2 to avoid integer overflow.

Solutions

public int search(int[] nums, int target) {
    int left = 0, right = nums.length - 1;
    while (left <= right) {
        int mid = left + (right - left) / 2; // avoids overflow
        if      (nums[mid] == target) return mid;
        else if (nums[mid] <  target) left = mid + 1;
        else                          right = mid - 1;
    }
    return -1;
}
Java

Time: O(log n) · Space: O(1)