-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path34.search_for_a_range.py
More file actions
28 lines (28 loc) · 857 Bytes
/
34.search_for_a_range.py
File metadata and controls
28 lines (28 loc) · 857 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class Solution(object):
def searchRange(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
length = len(nums)
if length == 0:
return [-1, -1]
min = 0
max = length - 1
while min <= max:
pos = (min + max) / 2
if nums[pos] > target:
max = pos - 1
elif nums[pos] < target:
min = pos + 1
else:
# when nums[pos] == target
# find the min and max
for i in range(min, max + 1):
if nums[i] == target:
if min < i and nums[min] != nums[i]:
min = i
max = i
return [min, max]
return [-1, -1]