package q1 import "slices" func twoSum(nums []int, target int) []int { pointers := make([]int, len(nums)) for i := range pointers { pointers[i] = i } slices.SortFunc(pointers, func(a, b int) int { return nums[a] - nums[b] }) for l, r := 0, len(pointers)-1; l < r; l++ { for ; l < r-1 && nums[pointers[l]]+nums[pointers[r]] > target; r-- { } if nums[pointers[l]]+nums[pointers[r]] == target { return []int{pointers[l], pointers[r]} } } return nil } var _ = twoSum