1. 两数之和 #
题目地址 #
解题思路 #
暴力法 #
嵌套遍历数组,外层遍历的值和内层遍历的值相加,如果相加等于目标值,则返回结果,否则继续遍历。内层遍历开始的位置是外层遍历的位置加 1,结束的位置是数组长度。
map #
TODO
具体实现 #
package main
import "fmt"
func twoSum(nums []int, target int) []int {
if len(nums) == 0 {
return []int{}
}
m := make(map[int]int, 0) // val => index
for index, val := range nums {
ass := target - val
if idx, ok := m[ass]; ok {
return []int{idx, index}
} else {
m[val] = index
}
}
return []int{}
}
func main() {
fmt.Println(twoSum([]int{3, 2, 4}, 6))
}
package main
import "fmt"
func twoSum(nums []int, target int) []int {
for index, value := range nums {
for i := index + 1; i < len(nums); i++ {
if (value + nums[i]) == target {
return []int{index, i}
}
}
}
return nil
}
func main() {
fmt.Println(twoSum([]int{3, 2, 4}, 6))
}