Find Smallest Letter Greater Than Target (Leetcode 744)
Problem Link: https://leetcode.com/problems/find-smallest-letter-greater-than-target/
class Solution:
def nextGreatestLetter(self, letters: List[str], target: str) -> str:
def modifiedbsearch(letters,target,i,j,n):
mid=j-(j-i)//2
while(i<=j):
if(letters[mid]==target):
# If target is repeated in array
while(mid+1<n and letters[mid]==letters[mid+1]):
mid+=1
self.ans=mid+1
return
elif(ord(letters[mid])>ord(target)):
self.ans=mid
return modifiedbsearch(letters,target,i,mid-1,n)
else:
return modifiedbsearch(letters,target,mid+1,j,n)
self.ans=-1
n=len(letters)
i=0
j=n-1
modifiedbsearch(letters,target,i,j,n)
# if target == 'z' and letters == ['a', 'b'], the answer is 'a'
if(self.ans==n or self.ans==-1):
self.ans=0
return letters[self.ans]
Last updated