Array & Hashing

03. Contains Duplicate

Given an integer array nums, return true if any value appears at least twice in the array, and return false if every element is distinct.

Examples

Example 1

Input: nums = [1,2,3,1]
Output: true
Explanation: The element 1 occurs at the indices 0 and 3.

Example 2

Input: nums = [1,2,3,4]
Output: false
Explanation: All elements are distinct.

Example 3

Input: nums = [1,1,1,3,3,4,3,2,4,2]
Output: true

Constraints

  • 1 <= nums.length <= 10^5
  • -10^9 <= nums[i] <= 10^9

Dado un arreglo de enteros nums, devuelve true si algun valor aparece al menos dos veces en el arreglo, y devuelve false si todos los elementos son distintos.

Ejemplos

Ejemplo 1

Entrada: nums = [1,2,3,1]
Salida: true
Explicacion: El elemento 1 aparece en los indices 0 y 3.

Ejemplo 2

Entrada: nums = [1,2,3,4]
Salida: false
Explicacion: Todos los elementos son distintos.

Ejemplo 3

Entrada: nums = [1,1,1,3,3,4,3,2,4,2]
Salida: true

Restricciones

  • 1 <= nums.length <= 10^5
  • -10^9 <= nums[i] <= 10^9
contains_duplicate.py
from typing import Dict, List

# Hash map approach
def containsDuplicateWithHashMap(nums: List[int]) -> bool:
    hash_map: Dict[int, int] = {}
    for i, v in enumerate(nums):
        if v in hash_map:
            return True
        hash_map[v] = i
    return False

# Optimal approach using a set (faster lookups, no index storage)
def containsDuplicateWithSet(nums: List[int]) -> bool:
    hashset: set[int] = set()
    for n in nums:
        if n in hashset:
            return True
        hashset.add(n)
    return False
Keyboard shortcuts
h Previous problem
l Next problem
Esc Back to index
? Toggle this help