Skip to content

Commit a33f733

Browse files
committed
fix: find-minimum-in-rotated-sorted-array 시간 복잡도 개선
1 parent d0b4c94 commit a33f733

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

find-minimum-in-rotated-sorted-array/Chaedie.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,27 @@ def findMin(self, nums: List[int]) -> int:
1414
return nums[i]
1515

1616
return nums[0]
17+
18+
"""
19+
Solution:
20+
시간 복잡도 O(log n)으로 풀기 위해 binary search 사용
21+
Time: O(log n)
22+
Space: O(1)
23+
"""
24+
25+
def findMin(self, nums: List[int]) -> int:
26+
l, r = 1, len(nums) - 1
27+
28+
while l <= r:
29+
mid = (l + r) // 2
30+
# prev 값보다 mid 가 작으면 찾던 값
31+
if nums[mid - 1] > nums[mid]:
32+
return nums[mid]
33+
# mid 까지 정상 순서면 우측 탐색
34+
if nums[0] < nums[mid]:
35+
l = mid + 1
36+
# mid 까지 비 정상 순서면 좌측 탐색
37+
else:
38+
r = mid - 1
39+
# 못찾을 경우 전체 정상 순서 케이스
40+
return nums[0]

0 commit comments

Comments
 (0)