Binary Search - 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, then return its index. Otherwise, return -1.

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

Input & Output

Example 1 — Target Found
$ Input: nums = [-1,0,3,5,9,12], target = 9
Output: 4
💡 Note: 9 exists in nums and its index is 4
Example 2 — Target Not Found
$ Input: nums = [-1,0,3,5,9,12], target = 2
Output: -1
💡 Note: 2 does not exist in nums so return -1
Example 3 — Single Element
$ Input: nums = [5], target = 5
Output: 0
💡 Note: Target found at index 0 in single-element array

Constraints

  • 1 ≤ nums.length ≤ 104
  • -104 < nums[i], target < 104
  • All the integers in nums are unique
  • nums is sorted in ascending order

Visualization

Tap to expand
Binary Search: Efficiently Find Target in Sorted ArrayInput: nums = [-1,0,3,5,9,12], target = 9-1035912012345mid=2FOUND!Step 1: Compare middle (3) with target (9) → go rightStep 2: New middle (9) equals target → found at index 4!Output: 4Time: O(log n) | Space: O(1)
Understanding the Visualization
1
Input
Sorted array and target value
2
Process
Binary search eliminates half each step
3
Output
Index of target or -1 if not found
Key Takeaway
🎯 Key Insight: Binary search eliminates half the search space with each comparison by leveraging the sorted array property
Asked in
Google 45 Amazon 38 Facebook 32 Microsoft 28
312.7K Views
Very High Frequency
~15 min Avg. Time
8.9K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen