## 題解
### 二分搜索
```python=
class Solution:
def twoSum(self, numbers: List[int], target: int) -> List[int]:
# Time complexity: O(nlogn)
# Space complexity: O(1)
n = len(numbers)
def binary_search(nums: List[int], t: int, curr: int):
nonlocal n
left, right = 0, n - 1
while left <= right:
mid = left + (right - left) // 2
if mid == curr:
left = mid + 1
continue
if nums[mid] < t:
left = mid + 1
elif nums[mid] > t:
right = mid - 1
else:
return mid
return -1
for i in range(n):
num = numbers[i]
t = target - num
mid = binary_search(numbers,t,i)
if mid != -1:
return [i+1,mid+1]
```