Problem:
https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/
This test case is failing.

what mistake I am making in my code ?
vector<int> searchRange(vector<int>& nums, int target) {
vector<int> vec( 2, -1 );
int lo = 0;
int hi = nums.size() - 1;
//first position
while( lo <= hi )
{
int mid = lo + (hi - lo) / 2;
if( nums[ mid ] == target )
{
vec[0] = mid;
//keep searching on left
hi = mid - 1;
}
if( nums[ mid ] < target )
lo = mid + 1;
else
hi = mid - 1;
}
//resetting the values of hi and lo
lo = 0;
hi = nums.size() - 1;
//last position
while( lo <= hi )
{
int mid = lo + (hi - lo) / 2;
if( nums[ mid ] == target )
{
vec[1] = mid;
// keep searching on right
lo = mid + 1;
}
if( nums[ mid ] < target )
lo = mid + 1;
else
hi = mid - 1;
}
return vec;
}