LeetCode 705. 设计哈希集合

题目描述

705. 设计哈希集合

思路分析

解法一:布尔数组(推荐)

核心思路

  • 题目约束 key 范围在 0~1,000,000。
  • 直接用布尔数组标记存在与否。
  • 插入、删除、查询均为 O(1)。


复杂度分析

  • 时间复杂度:O(1) 单次操作。
  • 空间复杂度:O(1e6),固定大小数组。
class MyHashSet {
    private final boolean[] data;

    public MyHashSet() {
        data = new boolean[1_000_001];
    }

    public void add(int key) {
        data[key] = true;
    }

    public void remove(int key) {
        data[key] = false;
    }

    public boolean contains(int key) {
        return data[key];
    }
}
type MyHashSet struct {
	data []bool
}

func Constructor() MyHashSet {
	return MyHashSet{data: make([]bool, 1_000_001)}
}

func (s *MyHashSet) Add(key int) {
	s.data[key] = true
}

func (s *MyHashSet) Remove(key int) {
	s.data[key] = false
}

func (s *MyHashSet) Contains(key int) bool {
	return s.data[key]
}

相似题目

题目 难度 考察点
706. 设计哈希映射 简单 哈希表
380. O(1) 时间插入、删除和获取随机元素 中等 哈希表
36. 有效的数独 中等 哈希表
347. 前 K 个高频元素 中等 哈希表
49. 字母异位词分组 中等 哈希表
本文作者:
本文链接: https://hgnulb.github.io/blog/2024/84422105
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!