Skip to content

Commit 9b5e535

Browse files
committed
#245 find-minimum-in-rotated-sorted-array solution
1 parent 9374bd8 commit 9b5e535

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
"""
2+
ํ’€์ด :
3+
์ตœ์ดˆ ์‹œ์ž‘ ์‹œ nums[left]๊ฐ€ nums[right]๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ๋Š” n๋งŒํผ rotate๋œ ์ƒํƒœ(์›๋ž˜ ์ž์‹ )
4+
๊ฐ™์€ ๊ฒฝ์šฐ๋Š” len(nums) == 1์ธ ๊ฒฝ์šฐ
5+
mid์™€ right์˜ ๊ฐ’์„ ๋น„๊ตํ•ด์„œ mid์˜ ๊ฐ’์ด ์ž‘๋‹ค๋ฉด mid๋ถ€ํ„ฐ right๊นŒ์ง€๋Š” ์ •๋ ฌ๋˜์žˆ์œผ๋ฏ€๋กœ ์ขŒ์ธก์— ์ตœ์†Ÿ๊ฐ’ ์กด์žฌ
6+
-> right = mid - 1
7+
๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ๋Š” ์ตœ์†Ÿ๊ฐ’์ด ์šฐ์ธก์— ์žˆ์œผ๋ฏ€๋กœ left = mid + 1
8+
9+
- left, mid, right์„ ์ ์ ˆํžˆ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์‹ ๊ตฌํ˜„ ์ž˜ํ•  ๊ฒƒ
10+
- mid๊ฐ€ ์ตœ์†Ÿ๊ฐ’์ผ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ
11+
12+
nums์˜ ๊ธธ์ด : n
13+
14+
TC : O(logN)
15+
๋ฐ˜์”ฉ ๋‚˜๋ˆ ์„œ ํƒ์ƒ‰ํ•˜๋ฏ€๋กœ log2N
16+
17+
SC : O(1)
18+
"""
19+
20+
class Solution:
21+
def findMin(self, nums: List[int]) -> int:
22+
left = 0
23+
right = len(nums) - 1
24+
if nums[left] <= nums[right] :
25+
return nums[left]
26+
while (nums[right] < nums[left]):
27+
mid = (left + right) // 2
28+
if nums[mid - 1] > nums[mid]:
29+
return nums[mid]
30+
if nums[mid] < nums[right] :
31+
right = mid - 1
32+
else :
33+
left = mid + 1
34+
return nums[left]

0 commit comments

Comments
ย (0)