Help!! First and Last Position

Problem:
https://leetcode.com/problems/find-first-and-last-position-of-element-in-sorted-array/

This test case is failing.
image

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;
        
        
    }
Comments (1)