24 lines
400 B
Go
24 lines
400 B
Go
package q150
|
|
|
|
func twoSum(numbers []int, target int) []int {
|
|
l, r := 0, len(numbers)-1
|
|
|
|
for l < r {
|
|
for numbers[r]+numbers[l] > target {
|
|
r--
|
|
}
|
|
if numbers[r]+numbers[l] == target {
|
|
return []int{l + 1, r + 1}
|
|
}
|
|
|
|
for numbers[r]+numbers[l] < target {
|
|
l++
|
|
}
|
|
if numbers[r]+numbers[l] == target {
|
|
return []int{l + 1, r + 1}
|
|
}
|
|
}
|
|
return []int{} // impossible
|
|
}
|
|
|
|
var _ = twoSum
|