Skip to content

Commit 31ba2f4

Browse files
committed
optimize find-minimum-in-rotated-sorted-array
1 parent c98db17 commit 31ba2f4

1 file changed

Lines changed: 9 additions & 16 deletions

File tree

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
11
class Solution:
22
def findMin(self, nums: List[int]) -> int:
3-
min_val = sys.maxsize
3+
lo, hi = 0, len(nums) - 1
4+
while lo < hi:
5+
mid = (lo + hi) // 2
46

5-
while len(nums) > 0:
6-
mid_idx = len(nums) // 2
7+
if nums[lo] < nums[hi]:
8+
return nums[lo]
79

8-
left = nums[0]
9-
mid = nums[mid_idx]
10-
right = nums[-1]
11-
12-
min_val = min(left, mid, right, min_val)
13-
14-
if min_val == left:
15-
break
16-
17-
if mid < right:
18-
nums = nums[0: mid_idx]
10+
if nums[mid] < nums[hi]:
11+
hi = mid
1912
else:
20-
nums = nums[mid_idx + 1:]
13+
lo = mid + 1
2114

22-
return min_val
15+
return nums[lo]

0 commit comments

Comments
 (0)