diff options
Diffstat (limited to 'progs/a745.py')
-rw-r--r-- | progs/a745.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/progs/a745.py b/progs/a745.py new file mode 100644 index 0000000..9a21dfa --- /dev/null +++ b/progs/a745.py @@ -0,0 +1,15 @@ +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 |