Find First and Last Position of Element in Sorted Array
Binary Search
Problem
Given an array of integers nums
sorted in ascending order, find the starting and ending position of a given target
value.
If target
is not found in the array, return [-1, -1]
.
Follow up: Could you write an algorithm with O(log n)
runtime complexity?
For example:
Thought Process
To find the first occurence/position of target, if num[mid] is greater than the target, then we have to move down. Along with this, if num[mid] is equal to the target, we have to move down because this potentially is not the first position of this element.
To find the last occurence/position of target, if num[mid] is less than the target then we have to keep moving up. Along with this we have to keep moving up if num[mid] is equal to target because it potentially may not be the last occurence/position of this element.
Solution
Time Complexity
Time: O(log n)
Space: O(1)
Last updated
Was this helpful?