跳转至

存在重复元素

最后更新:2023-12-01

链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/x248f5/

题目描述

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。

题目示例

输入: nums = [1,2,3,1]

输出: true

输入: nums = [1,2,3,4]

输出: false

输入: nums = [1,1,1,3,3,4,3,2,4,2]

输出: true

提示:

  • \(1 <= nums.length <= 10^5\)
  • \(-10^9 <= nums[i] <= 10^9\)
C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int* comp(const void *a, const void *b) {
    return *(int *)a - *(int *)b;
}

bool containsDuplicate(int* nums, int numsSize){
    qsort(nums,numsSize,sizeof(int),comp);

    for (int i = 1; i < numsSize; i++) {
        if (nums[i] == nums[i-1]) {
            return true;
        }
    }

    return false;
}
Go
import "sort"

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
}

func containsDuplicateHashMap(nums []int) bool {
    hashMap := map[int]int{}

    for _, v := range nums {
        if _, has := hashMap[v]; has {
            return true
        }
        hashMap[v] = v
    }

    return false
}