Searching Algorithms (linear search, binary search)
What advanced binary search application is implemented here?
function searchRange(arr, target) {
const findBound = (isFirst) => {
let left = 0, right = arr.length - 1;
let result = -1;
while(left <= right) {
const mid = Math.floor((left + right) / 2);
if(arr[mid] === target) {
result = mid;
if(isFirst) right = mid - 1;
else left = mid + 1;
}
else if(arr[mid] < target) left = mid + 1;
else right = mid - 1;
}
return result;
};
return [findBound(true), findBound(false)];
}