给定一个整数数组,判断是否存在重复元素。
如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。
输入: [1,2,3,1] , 输出: true
输入: [1,2,3,4] , 输出: false
输入: [1,1,1,3,3,4,3,2,4,2] , 输出: true
– 2018/12/6 更新—
Go语言
方法一 对数组排序,然后对比左右元素的大小
方法二 使用 map ,记录每个数字出现的次数
一
func containsDuplicate(nums []int) bool {
sort.Sort(sort.IntSlice(nums))
for i :=0;i<len(nums)-1;i++ {
if nums[i]==nums[i+1] {
return true
}
}
return false
}
//执行用时:44 ms
//已经战胜 57.04 % 的 golang 提交记录
二
func containsDuplicate(nums []int) bool {
ages := make(map[int]int)
for i :=0;i<len(nums);i++ {
if ages[nums[i]] > 0{
ages[nums[i]]+=1
if ages[nums[i]]>1 {
return true
}
}else{
ages[nums[i]] = 1
}
}
return false
}
//执行用时:40 ms
//已经战胜 66.33 % 的 golang 提交记录
or
func containsDuplicate(nums []int) bool {
ages := make(map[int]int)
for _,value := range nums {
if ages[value] > 0{
return true
}else{
ages[value] = 1
}
}
return false
}
//执行用时:40 ms
//已经战胜 66.33 % 的 golang 提交记录