MCPcopy Create free account
hub / github.com/HuberTRoy/leetCode / Solution

Class Solution

Array/FindFirstAndLastPositionOfElementInSortedArray.py:80–124  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78"""
79
80class Solution(object):
81 def find_right(self, nums, target):
82 lo = 0
83 hi = len(nums)
84 equals = []
85 while lo < hi:
86 mid = (lo + hi) // 2
87 if target == nums[mid]:
88 equals.append(mid)
89
90 if target < nums[mid]:
91 hi = mid
92 else:
93 lo = mid + 1
94
95 return equals[-1] if equals else -1
96
97 def find_left(self, nums, target):
98 lo = 0
99 hi = len(nums)
100 equals = []
101 while lo < hi:
102 mid = (lo + hi) // 2
103 if target == nums[mid]:
104 equals.append(mid)
105
106 if target > nums[mid]:
107 lo = mid + 1
108 else:
109 hi = mid
110 return equals[-1] if equals else -1
111
112
113 def searchRange(self, nums, target):
114 """
115 :type nums: List[int]
116 :type target: int
117 :rtype: List[int]
118 """
119
120 left = self.find_left(nums, target)
121 if left == -1:
122 return [-1, -1]
123
124 return [left, self.find_right(nums, target)]

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected