Solution to LeetCode's 35. Search Insert Position with JavaScript.
You must write an algorithm with O(log n) runtime complexity.
Solution
/**
* @param {number[]} nums
* @param {number} target
* @return {number}
*/
const searchInsert = (nums, target) => {
let left = 0;
let right = nums.length - 1;
while (left <= right) {
const mid = Math.floor((left + right) / 2);
if (nums[mid] == target) {
return mid;
} else if (nums[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return left;
};
- Time complexity: O(log n)
- Space complexity: O(1)
Linear search would result in a time complexity of O(n), so I used a binary search to reduce it to O(log n).
Top comments (0)