Find First and Last Position of Element in Sorted Array (Leetcode 34)

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

class Solution:
    def searchRange(self, nums: List[int], target: int) -> List[int]:
        
        def fpbsearch(nums,target,i,j):
            
            mid=(i+j)//2
            
            while(i<=j):
                
                if(nums[mid]==target):
                    self.fpos=mid
                    return fpbsearch(nums,target,i,mid-1)
        
                elif(nums[mid]<target):
                    return fpbsearch(nums,target,mid+1,j)
                elif(nums[mid]>target):
                    return fpbsearch(nums,target,i,mid-1)
                
        
        
        def lpbsearch(nums,target,i,j):
            
            mid=(i+j)//2
            
            while(i<=j):
                
                if(nums[mid]==target):
                    self.lpos=mid
                    return lpbsearch(nums,target,mid+1,j)
        
                elif(nums[mid]<target):
                    return lpbsearch(nums,target,mid+1,j)
                elif(nums[mid]>target):
                    return lpbsearch(nums,target,i,mid-1)

        self.fpos=-1
        self.lpos=-1
        n=len(nums)
        fpbsearch(nums,target,0,n-1)
        lpbsearch(nums,target,0,n-1)
        return [self.fpos,self.lpos]

Last updated