lc-go/solutions/0/q1/solution.go

23 lines
566 B
Go

// Package q1 implements a solution for https://leetcode.com/problems/two-sum/
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