题目
解法一
- 建立一个key为int,value为int的map;
- 第一遍
for range
循环遍历nums
数组,将nums
数组里的元素出现的次数记录进map
中; - 第二遍
for range
循环遍历map
,将value不为1的num取出返回,即为重复数。
这个解法需要用两次for
循环,效率不高,下面我考虑用第二种解法。
解法二
- 建立一个key为int,value为bool类型的map;
- 一遍
for range
循环遍历nums
数组,如果这个num
第一次出现,就将其value置为true,否则直接返回这个num
,因为value为true代表这个num
已经出现过一次了,第二次再遍历到它时,即为重复数。
go代码
1 | func findDuplicate(nums []int) int { |