diff --git a/solutions/q150/solution.go b/solutions/q150/solution.go new file mode 100644 index 0000000..6eeeb7f --- /dev/null +++ b/solutions/q150/solution.go @@ -0,0 +1,24 @@ +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