1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
// @Title: 两数之和 II - 输入有序数组 (Two Sum II - Input Array Is Sorted)
// @Author: 15816537946@163.com
// @Date: 2022-03-17 16:57:42
// @Runtime: 8 ms
// @Memory: 5.2 MB
func twoSum(numbers []int, target int) []int {
    for i:=0;i<len(numbers);i++ {
        lo, hi := i+1, len(numbers)-1
        for lo <= hi {
            mid := (lo+hi)>>1

            if numbers[mid] == target-numbers[i] {
                return []int{i+1, mid+1}
            } else if numbers[mid] > target-numbers[i] {
                hi = mid-1
            } else {
                lo = mid+1
            }
        }
    }
    return nil 
}