题目描述
找出数组中重复的数字。
在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。
示例 1:
输入:
[2, 3, 1, 0, 2, 5, 3]
输出:2 或 3
限制:
2 <= n <= 100000
解答思路
使用哈希表,如果存在直接输出,不存在就添加
优化记录
第一次使用桶排序,第二次使用哈希表
提交结果
func findRepeatNumber(nums []int) int {
var fu [100000]int
var c int
for i:=0;i<len(nums);i++{
fu[nums[i]]++
if fu[nums[i]] >= 2{
fmt.Println(nums[i])
c=nums[i]
}
}
return c
}
package main
import "fmt"
func main() {
ns := []int{1, 2, 3, 2}
fmt.Println(findRepeatNumber(ns))
}
func findRepeatNumber(nums []int) int {
if len(nums)==0{
return 0
}
var x map[int]int
x = make(map[int]int)
for _, n := range nums {
_, ok := x[n]
if ok {
return n
} else {
x[n] = 1
}
}
return 0
}
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。