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