GolangEP06:关于map-下
引子 上一篇文章中留下了两个问题没有解决 map 如何扩容 为什么原生的 map 线程不安全 其实这两个问题是有联系的,所以这篇文章来解决这两个问题。 map 的扩容机制 本节还是需要用到上一篇文章中的底层 hmap 结构 ...
引子 上一篇文章中留下了两个问题没有解决 map 如何扩容 为什么原生的 map 线程不安全 其实这两个问题是有联系的,所以这篇文章来解决这两个问题。 map 的扩容机制 本节还是需要用到上一篇文章中的底层 hmap 结构 ...
引子 在做两数之和时,操作 map 遇到了问题,可以看我下面的代码。 func twoSum(nums []int, target int) []int { sMap := make(map[int]int) for i, x := range nums { sMap[x] = i } var ans []int for i, y := range nums { // 如果另一个值在 map 中存在的话即下标大于等于 0;且要保证不能使用两次相同的元素 p := sMap[target-y] if p >= 0 && p != i { ans = append(ans, i) ans = append(ans, p) break } } return ans } 像极了一个 golang 新手的操作,特别是在判断 key 是否存在于哈希表中时,用值(下标)是否大于 0 来判断。(当然前面的哈希表的定义也有问题) ...