Skip to content

Commit 5746266

Browse files
committed
feat: add search in rotated sorted array solution
1 parent e2c140b commit 5746266

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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

0 commit comments

Comments
ย (0)