35. Search Insert Position (Leetcode || Java || Easy)

Palakkgoyal
2 min readOct 27, 2022

--

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.

Example 1:

Input: nums = [1,3,5,6], target = 5
Output: 2

Example 2:

Input: nums = [1,3,5,6], target = 2
Output: 1

Example 3:

Input: nums = [1,3,5,6], target = 7
Output: 4

Constraints:

  • 1 <= nums.length <= 104
  • -104 <= nums[i] <= 104
  • nums contains distinct values sorted in ascending order.
  • -104 <= target <= 104

SOLUTION:

class Solution {
public int searchInsert(int[] nums, int target) {
int start = 0;//defining range for binary search
int end = nums.length — 1;

while(start <= end){//applying binary search
int mid = start + (end — start)/2;

if(nums[mid] == target){//if target is in the array return its index that is mid
return mid;
}
else if(nums[mid] > target){
end = mid — 1;
}else{
start = mid + 1;
}
}

return start;//if target is not in array then start will provide its correct index
}
}

TIME COMPLEXITY :- O(log(n))

SPACE COMPLEXITY :- O(1)

Thank you for reading. If you have any queries please let me know in the comment section.

--

--

Palakkgoyal
Palakkgoyal

Written by Palakkgoyal

Solutions to all your coding related problems at one point. DSA question on daily basis and much more.

No responses yet