Skip to content

Instantly share code, notes, and snippets.

@ericness
Created February 24, 2022 01:12
Show Gist options
  • Select an option

  • Save ericness/0acaf462c25c0a936b61bc7d05f97520 to your computer and use it in GitHub Desktop.

Select an option

Save ericness/0acaf462c25c0a936b61bc7d05f97520 to your computer and use it in GitHub Desktop.
LeetCode 153 solution
from typing import List
class Solution:
def findMin(self, nums: List[int]) -> int:
"""Find minimum element in rotated sorted array.
Args:
nums (List[int]): Rotated sorted array
Returns:
int: Minimum value
"""
left = 0
center = len(nums) // 2
right = len(nums) - 1
while True:
left_value = nums[left]
center_value = nums[center]
right_value = nums[right]
if center - left <= 1 and right - center <= 1:
return min(left_value, center_value, right_value)
elif left_value < center_value < right_value:
return left_value
elif left_value > center_value:
right = center
center = center - (center - left) // 2
elif center_value > right_value:
left = center
center = center + (right - center) // 2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment