Learn practical skills, build real-world projects, and advance your career
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=[]