6. Search Insert Position
easyAsked at ExpediaFind target index in sorted array, or where it would be inserted to keep order.
By Alex Chen, 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.
Constraints
1 <= nums.length <= 10^4-10^4 <= nums[i] <= 10^4nums contains distinct values sorted in ascending order
Examples
Example 1
nums = [1,3,5,6], target = 52Example 2
nums = [1,3,5,6], target = 21Approaches
1. Linear scan
Walk until first element >= target.
- Time
- O(n)
- Space
- O(1)
for (let i=0;i<nums.length;i++)
if (nums[i]>=target) return i;
return nums.length;Tradeoff:
2. Binary search
Standard lower-bound binary search. Expedia uses this for price-tier lookups against sorted fare buckets.
- Time
- O(log n)
- Space
- O(1)
function searchInsert(nums, target) {
let lo = 0, hi = nums.length;
while (lo < hi) {
const mid = (lo + hi) >> 1;
if (nums[mid] < target) lo = mid + 1;
else hi = mid;
}
return lo;
}Tradeoff:
Expedia-specific tips
Expedia loves clean lower-bound binary search; nail the loop invariant (lo=hi at termination, hi exclusive) and tie it to price-bucket lookups.
Solve it now
Free. No sign-up. Python and JavaScript run instantly in your browser.
Practice these live with InterviewChamp.AI
Drill Search Insert Position and other Expedia interview questions under real-loop conditions with instant feedback on your reasoning, complexity claims, and code.
Practice these live with InterviewChamp.AI →