File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed
search-in-rotated-sorted-array Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ from typing import List
2
+
3
+
4
+ class Solution :
5
+ """
6
+ - ์์ด๋์ด: ๋ฐฐ์ด์ ์ค๊ฐ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ์ค ํ์ชฝ์ ํญ์ ์ ๋ ฌ๋์ด ์๋ค.
7
+ ์ด ํน์ง์ ์ฐฉ์ํ์ฌ, ์ด๋ ์ชฝ์ด ๋จผ์ ์ ๋ ฌ๋์ด ์๋์ง ํ์ธํ๊ณ , ๊ทธ ์์
8
+ ์ฐพ์ผ๋ ค๋ ๊ฐ์ด ์๋์ง๋ฅผ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ํ์ ๋ฒ์๋ฅผ ์ขํ๊ฐ๋ค.
9
+ - ์๊ฐ ๋ณต์ก๋: O(logn). n์ ๋ฐฐ์ด์ ๊ธธ์ด.
10
+ ๋ฐฐ์ด์ ์ ๋ฐ์ฉ ๋๋์ด ํ์์ ์งํํ๊ธฐ ๋๋ฌธ์ ์๊ฐ ๋ณต์ก๋๋ O(logn)์ด๋ค.
11
+ - ๊ณต๊ฐ ๋ณต์ก๋: O(1). ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , ์์ ๊ณต๊ฐ๋ง ํ์ํ๋ค.
12
+ """
13
+
14
+ def search (self , nums : List [int ], target : int ) -> int :
15
+ left , right = 0 , len (nums ) - 1
16
+
17
+ while left <= right :
18
+ mid = (left + right ) // 2
19
+
20
+ if nums [mid ] == target :
21
+ return mid
22
+
23
+ if nums [left ] <= nums [mid ]:
24
+ if nums [left ] <= target < nums [mid ]:
25
+ right = mid - 1
26
+ else :
27
+ left = mid + 1
28
+ else :
29
+ if nums [mid ] < target <= nums [right ]:
30
+ left = mid + 1
31
+ else :
32
+ right = mid - 1
33
+
34
+ return - 1
You canโt perform that action at this time.
0 commit comments