From d653d3598d71fea30d45d118e3d046a3aed53ac1 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Thu, 27 Jun 2024 22:39:22 +0200 Subject: Uncommented test files --- progs/a745.py | 32 +++++++++++++++----------------- 1 file changed, 15 insertions(+), 17 deletions(-) (limited to 'progs/a745.py') diff --git a/progs/a745.py b/progs/a745.py index e8ad671..1d9fe80 100644 --- a/progs/a745.py +++ b/progs/a745.py @@ -1,17 +1,15 @@ -# FIXME: unpacking assignment -# -# def find_rotation_count(A): -# (left, right) = (0, len(A) - 1) -# while left <= right: -# if A[left] <= A[right]: -# return left -# mid = (left + right) // 2 -# next = (mid + 1) % len(A) -# prev = (mid - 1 + len(A)) % len(A) -# if A[mid] <= A[next] and A[mid] <= A[prev]: -# return mid -# elif A[mid] <= A[right]: -# right = mid - 1 -# elif A[mid] >= A[left]: -# left = mid + 1 -# return -1 \ No newline at end of file +def find_rotation_count(A): + (left, right) = (0, len(A) - 1) + while left <= right: + if A[left] <= A[right]: + return left + mid = (left + right) // 2 + next = (mid + 1) % len(A) + prev = (mid - 1 + len(A)) % len(A) + if A[mid] <= A[next] and A[mid] <= A[prev]: + return mid + elif A[mid] <= A[right]: + right = mid - 1 + elif A[mid] >= A[left]: + left = mid + 1 + return -1 -- cgit v1.2.3-18-g5258