leetcode 705. Design HashSet(设计HashSet)

在这里插入图片描述

设计一个HashSet,有add, contains, remove功能。

思路:

正常的HashSet, 通过一个hash函数来计算key的hash值,把key放到数组中hash值对应的位置。
遇到hash值冲突时去找下一个空的位置。

而这里因为key的值是有限的,可以简化为hash(key) = key。
只需用 1 代表有这个值,0代表没有。

用char数组节省一点内存空间。

class MyHashSet {
    
    
    char[] keys = new char[1000001];

    public MyHashSet() {
    
    
        
    }
    
    public void add(int key) {
    
    
        keys[key] = 1;
    }
    
    public void remove(int key) {
    
    
        keys[key] = 0;
    }
    
    public boolean contains(int key) {
    
    
        return keys[key]==1;
    }
}

猜你喜欢

转载自blog.csdn.net/level_code/article/details/130941896
今日推荐