lc-go/solutions/0/q1/solution.go
2025-12-29 08:46:00 +09:00

22 lines
487 B
Go

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