LeetCode 217. 存在重复元素

题目描述

217. 存在重复元素

思路分析

解法一:哈希集合判重(推荐)

核心思路

  • 遍历数组,用哈希集合记录已经出现过的元素。
  • 若某元素已存在于集合中,直接返回 true
  • 遍历结束仍未重复则返回 false


复杂度分析

  • 时间复杂度:O(n),其中 n 表示数组长度。
  • 空间复杂度:O(n),用于哈希集合。
import java.util.HashSet;
import java.util.Set;

class Solution {
    public boolean containsDuplicate(int[] nums) {
        Set<Integer> seen = new HashSet<>();
        for (int num : nums) {
            if (seen.contains(num)) {
                return true;
            }
            seen.add(num);
        }
        return false;
    }
}
func containsDuplicate(nums []int) bool {
	seen := make(map[int]struct{})
	for _, v := range nums {
		if _, ok := seen[v]; ok {
			return true
		}
		seen[v] = struct{}{}
	}
	return false
}

相似题目

题目 难度 考察点
219. 存在重复元素 II 简单 哈希表
220. 存在重复元素 III 困难 哈希表
1. 两数之和 简单 哈希表
349. 两个数组的交集 简单 哈希表
242. 有效的字母异位词 简单 哈希表
本文作者:
本文链接: https://hgnulb.github.io/blog/2022/48338292
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!