35. Search Insert Position
easyFind the index where a target would be inserted in a sorted array. The classic 'lower bound' problem — once you internalize it, half of binary search becomes muscle memory.
By Sam K., Founder, InterviewChamp.AI · Last verified
Problem
Given a sorted array of distinct integers and a target value, return the index if the target is found. If not, return the index where it would be if it were inserted in order. You must write an algorithm with O(log n) runtime complexity.
Constraints
1 <= nums.length <= 10^4-10^4 <= nums[i] <= 10^4nums contains distinct values sorted in ascending order.-10^4 <= target <= 10^4
Examples
Example 1
nums = [1,3,5,6], target = 52Example 2
nums = [1,3,5,6], target = 21Explanation: 2 would be inserted between 1 and 3, at index 1.
Example 3
nums = [1,3,5,6], target = 74Explanation: 7 is larger than all elements, so it goes at the end.
Solve it now
Free. No sign-up. Python and JavaScript run instantly in your browser.
Hints
Progressive — try the first before opening the next.
Hint 1
This is just plain binary search with one twist: when you don't find the target, you still have to return something useful.
Hint 2
Use the half-open invariant: lo and hi bracket the candidate insertion index, with hi = n initially (one past the last index).
Hint 3
After the loop terminates with lo == hi, that value is exactly the lower-bound insertion index.
Solution approach
Reveal approach
Use a lower-bound binary search. Initialize lo = 0 and hi = n (note: one past the last valid index — half-open interval). While lo < hi, compute mid = lo + (hi - lo) / 2. If nums[mid] < target, set lo = mid + 1 (target must go to the right of mid). Otherwise set hi = mid (mid itself is still a candidate). When the loop exits, lo == hi and that value is the insertion index. The invariant: everything left of lo is strictly less than target, and everything at hi or beyond is >= target. This template generalizes to lower_bound / upper_bound problems, and once you internalize the half-open variant you stop fighting off-by-one bugs.
Complexity
- Time
- O(log n)
- Space
- O(1)
Related patterns
- binary-search
- modified-binary-search
Related problems
Asked at
Companies reported asking this problem (sourced from public Glassdoor, Blind, and Levels.fyi interview posts).
- Amazon
- Microsoft
- Apple
- Bloomberg
More Binary Search practice problems
- 4. Median of Two Sorted Arrays
- 33. Search in Rotated Sorted Array
- 34. Find First and Last Position of Element in Sorted Array
- 69. Sqrt(x)
- 74. Search a 2D Matrix
- 153. Find Minimum in Rotated Sorted Array
- 154. Find Minimum in Rotated Sorted Array II
- 162. Find Peak Element