main.go 799 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package main
  2. import (
  3. "fmt"
  4. )
  5. func main() {
  6. nums := []int{3, 3}
  7. fmt.Print(twoSum(nums, 6))
  8. fmt.Print(twoSumMap(nums, 6))
  9. }
  10. func twoSum(nums []int, target int) []int {
  11. answer := make([]int, 2)
  12. var i, j int
  13. for i = 0; i < len(nums); i++ {
  14. for j = i + 1; j < len(nums); j++ {
  15. if nums[i]+nums[j] == target {
  16. answer[0] = i
  17. answer[1] = j
  18. return answer
  19. }
  20. }
  21. }
  22. // answer[0] = 0
  23. // answer[1] = 0
  24. return answer
  25. }
  26. func twoSumMap(nums []int, target int) []int {
  27. datamap := make(map[int]int)
  28. for i := 0; i < len(nums); i++ {
  29. datamap[nums[i]] = i
  30. }
  31. for index1 := 0; index1 < len(nums); index1++ {
  32. index2, isOk := datamap[target-nums[index1]]
  33. if isOk && index2 != index1 {
  34. return []int{index1, index2}
  35. }
  36. }
  37. return nil
  38. }