1. 两数之和

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))
}