217. 存在重复元素
给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true
。如果数组中每个元素都不相同,则返回 false
。
//哈希表法,时空都是On
func containsDuplicate(nums []int) bool {
hash_m := map[int]struct{}{} //1,为啥要这么建立哈希表
for _, v := range nums {
if _, ok := hash_m[v]; ok { //2,第二个ok又是啥意思
return true
}
hash_m[v] = struct{}{} //3,返回的空值是什么
}
return false
}
//暴力排序法,时间nlogn,空间logn
func containsDuplicate(nums []int) bool {
sort.Ints(nums)
for i := 1; i < len(nums); i++ {
if nums[i] == nums[i-1] {
return true
}
}
return false
}