在编程中,检查数组或列表中的重复元素是常见问题。以下是几种高效实现方式👇
方法对比 📊
方法 | 时间复杂度 | 空间复杂度 | 特点 |
---|---|---|---|
集合(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 高频题解析 中关于时间复杂度的详细说明。