在编程中,检查数组或列表中的重复元素是常见问题。以下是几种高效实现方式👇

方法对比 📊

方法 时间复杂度 空间复杂度 特点
集合(Set) 🔍 O(n) O(n) 适合大多数语言,简单直观
哈希表(Hash Map) 🧩 O(n) O(n) 可记录重复次数,扩展性强
排序后遍历 O(n log n) O(1) 适合内存有限的场景
位运算 🧠 O(n) O(1) 仅适用于小数值范围

示例代码 📁

# 集合去重示例
def has_duplicates(arr):
    return len(arr) != len(set(arr))

# 哈希表计数示例
def count_duplicates(arr):
    counts = {}
    for num in arr:
        counts[num] = counts.get(num, 0) + 1
    return {k: v for k, v in counts.items() if v > 1}

扩展学习 📚

想深入了解算法优化?可参考 LeetCode 高频题解析 中关于时间复杂度的详细说明。