Number of Occurances

Problem Link: https://practice.geeksforgeeks.org/problems/number-of-occurrence2259/1

class Solution:

	def count(self,arr, n, x):
		# code here
		def fpbsearch(arr,i,j,target):
		    
		    mid=(i+j)//2
		    
		    while(i<=j):
		        if(arr[mid]==target):
		            self.fp=mid
		            return fpbsearch(arr,i,mid-1,target)
		        elif(arr[mid]<target):
		            return fpbsearch(arr,mid+1,j,target)
		        else:
		            return fpbsearch(arr,i,mid-1,target)
		    
		    
	    	def lpbsearch(arr,i,j,target):
		    
		    mid=(i+j)//2
		    
		    while(i<=j):
		        if(arr[mid]==target):
		            self.lp=mid
		            return lpbsearch(arr,mid+1,j,target)
		        elif(arr[mid]<target):
		            return lpbsearch(arr,mid+1,j,target)
		        else:
		            return lpbsearch(arr,i,mid-1,target)
		    
        
        
        n=len(arr)
        i=0
        j=n-1
        target=x
        self.fp=-1
        self.lp=-1
		fpbsearch(arr,i,j,target)
		lpbsearch(arr,i,j,target)
		if(self.fp==-1 and self.lp==-1):
		    return 0
	    else:
	    	return self.lp-self.fp+1

Last updated