Skip to content

Commit acf0152

Browse files
committedNov 24, 2020
feat: search-in-rotated-sorted-array
1 parent cf09608 commit acf0152

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed
 

Diff for: ‎bs.search-in-rotated-sorted-array.py

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from typing import List
2+
3+
class Solution:
4+
"""
5+
33. 搜索旋转排序数组
6+
https://leetcode-cn.com/problems/search-in-rotated-sorted-array
7+
给你一个整数数组 nums ,和一个整数 target 。
8+
该整数数组原本是按升序排列,但输入时在预先未知的某个点上进行了旋转。(例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
9+
请你在数组中搜索 target ,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。
10+
"""
11+
def search(self, nums: List[int], target: int) -> int:
12+
l, r = 0, len(nums) -1
13+
while l <= r:
14+
mid = l + (r - l) // 2
15+
if nums[mid] == target:
16+
return mid
17+
18+
if nums[mid] >= nums[l]:
19+
if nums[l] <= target <= nums[mid]:
20+
r = mid - 1
21+
else:
22+
l = mid + 1
23+
else:
24+
if nums[mid] < target <= nums[r]:
25+
l = mid + 1
26+
else:
27+
r = mid - 1
28+
29+
return -1
30+
31+
so = Solution()
32+
print(so.search([4,5,6,7,0,1,2], 0))

0 commit comments

Comments
 (0)
Please sign in to comment.