Learn practical skills, build real-world projects, and advance your career
Updated 3 years ago
def binary_search(lo,hi,condition):
while lo<=hi:
mid=(lo+hi)//2
result=condition(mid)
if result=='found':
return mid
elif result=='left':
hi=mid-1
elif result=='right':
lo=mid+1
return 0
def count_rotation(nums):
lo=0
hi=len(nums)-1
def condition(mid):
if mid>0 and nums[mid]<nums[mid-1]:
return 'found'
elif nums[mid]<=nums[hi]:
return 'left'
elif nums[mid]>=nums[hi]:
return 'right'
return binary_search(lo,hi,condition)
from jovian.pythondsa import evaluate_test_cases
from jovian.pythondsa import evaluate_test_case
tests=[]