Chaturmind
LearnDSASystem DesignDevOpsEngineering GrowthBlog
Start learning
Chaturmind

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

Learn

  • Java
  • DSA
  • System Design
  • Spring Boot
  • AI / ML
  • DevOps
  • Engineering Growth

Company

  • Blog
  • 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

The brute-force answer — scan every element left to right — works and is O(n), but the array being SORTED is a strong hint that a smarter approach exists.

Hint 2

Sorted order means one comparison at the midpoint eliminates HALF the remaining search space — you never need to look at the eliminated half at all.

Hint 3

Use left + (right - left) / 2 rather than (left + right) / 2 to compute the midpoint — the latter can silently overflow for very large index values.

Solutions

public int searchBruteForce(int[] nums, int target) {
    for (int i = 0; i < nums.length; i++) {
        if (nums[i] == target) return i;
    }
    return -1;
}

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