217. 存在重复元素

给定一个整数数组,判断是否存在重复元素。
如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false

  1. //哈希表法,时空都是On
  2. func containsDuplicate(nums []int) bool {
  3. hash_m := map[int]struct{}{} //1,为啥要这么建立哈希表
  4. for _, v := range nums {
  5. if _, ok := hash_m[v]; ok { //2,第二个ok又是啥意思
  6. return true
  7. }
  8. hash_m[v] = struct{}{} //3,返回的空值是什么
  9. }
  10. return false
  11. }
//暴力排序法,时间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
}