19 lines
690 B
Python
19 lines
690 B
Python
|
class Solution:
|
||
|
def twoSum(self, numbers: list[int], target: int) -> list[int]:
|
||
|
for idx, num in enumerate(numbers):
|
||
|
finding = target - num
|
||
|
left = idx
|
||
|
right = len(numbers) - 1
|
||
|
while left <= right:
|
||
|
mid = (left + right) // 2
|
||
|
if numbers[mid] == finding:
|
||
|
return [idx + 1, mid + 1]
|
||
|
if numbers[mid] > finding:
|
||
|
right = mid - 1
|
||
|
continue
|
||
|
if numbers[mid] < finding:
|
||
|
left = mid + 1
|
||
|
sol = Solution()
|
||
|
print(sol.twoSum([2, 7 ,11, 15], 26))
|
||
|
print(sol.twoSum([-1, 9], 8))
|
||
|
print(sol.twoSum([2,3,4], 6))
|