File tree Expand file tree Collapse file tree 1 file changed +30
-0
lines changed
find-minimum-in-rotated-sorted-array Expand file tree Collapse file tree 1 file changed +30
-0
lines changed Original file line number Diff line number Diff line change 1+ '''
2+ Docstring for find-minimum-in-rotated-sorted-array.ZetBe
3+ ๋ฌธ์ : ํ์ ๋ ์ ๋ ฌ ๋ฐฐ์ด์์ ์ต์๊ฐ์ ์ฐพ์ผ์์ค.
4+ ํ์ด: ์ด์ง ํ์์ ์ฌ์ฉํ์ฌ ํ์ ๋ ๋ฐฐ์ด์์ ์ต์๊ฐ์ ํจ์จ์ ์ผ๋ก ์ฐพ์ต๋๋ค.
5+ ์๊ฐ ๋ณต์ก๋: O(log n), n์ ๋ฐฐ์ด์ ๊ธธ์ด์
๋๋ค. ์ด์ง ํ์์ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ฉ ํ์ ๋ฒ์๋ฅผ ์ค์ด๋ฏ๋ก ์ ์ฒด ์๊ฐ ๋ณต์ก๋๋ O(log n)์
๋๋ค.
6+ ๊ณต๊ฐ ๋ณต์ก๋: O(1), ์ถ๊ฐ์ ์ธ ๊ณต๊ฐ์ ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ๊ณต๊ฐ ๋ณต์ก๋๋ O(1)์
๋๋ค.
7+ ์ฌ์ฉํ ์๋ฃ๊ตฌ์กฐ: ๋ฐฐ์ด
8+ ์ถ๊ฐ๋ก, while๋ฌธ ๋ด๋ถ์์ ๋ฌด์กฐ๊ฑด ๋ฆฌํดํ๊ธฐ ๋๋ฌธ์, while๋ฌธ ์ดํ ๋๋ฌํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
9+ '''
10+
11+
12+ class Solution :
13+ def findMin (self , nums : List [int ]) -> int :
14+ n = len (nums )
15+ if nums [0 ] <= nums [n - 1 ]:
16+ return nums [0 ]
17+
18+ r , l = 0 , n - 1
19+
20+ while r < l :
21+ now = (r + l )// 2
22+ if now < n - 1 and nums [now ] > nums [now + 1 ]:
23+ return nums [now + 1 ]
24+
25+ if now < n - 1 and nums [0 ] > nums [now ] <= nums [now + 1 ]:
26+ l = now
27+ elif now < n - 1 and nums [0 ] <= nums [now ] <= nums [now + 1 ]:
28+ r = now
29+
30+
You canโt perform that action at this time.
0 commit comments