File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
find-minimum-in-rotated-sorted-array Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change
1
+ from typing import List
2
+
3
+ class Solution :
4
+ """
5
+ - Time Complexity: O(logn), n = len(nums)
6
+ - Space Complexity: O(1)
7
+ """
8
+ def findMin (self , nums : List [int ]) -> int :
9
+ # Binary Search
10
+ l , r = 0 , len (nums ) - 1
11
+
12
+ while l < r :
13
+ mid = (l + r ) // 2
14
+ if nums [mid ] > nums [r ]:
15
+ # if min number located in right side
16
+ l = mid + 1
17
+ else :
18
+ # if min number located in left side (including current pivot)
19
+ r = mid
20
+
21
+ return nums [l ]
22
+
23
+ tc = [
24
+ ([3 ,4 ,5 ,1 ,2 ], 1 ),
25
+ ([4 ,5 ,6 ,7 ,0 ,1 ,2 ], 0 ),
26
+ ([11 ,13 ,15 ,17 ], 11 )
27
+ ]
28
+
29
+ for i , (nums , e ) in enumerate (tc , 1 ):
30
+ sol = Solution ()
31
+ r = sol .findMin (nums )
32
+ print (f"TC { i } is Passed!" if r == e else f"TC { i } is Failed! - Expected: { e } , Result: { r } " )
You can’t perform that action at this time.
0 commit comments