• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

bihu3637

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

Day3 设计哈希集合

class MyHashSet {
    private:
        vector<list<int>> data;
        static const int base =769;
        static int hash(int key){
            return key%base;
        }
public:
    MyHashSet(): data(base) {}
   
    void add(int key) {
        int h =hash(key);
        for (auto it =data[h].begin(); it != data[h].end(); it++){
            if ((*it)==key)   {
                return;
            }
        }
        data[h].push_back(key);
    }
   
    void remove(int key) {
        int h = hash(key);
        for (auto it =data[h].begin(); it!=data[h].end();it++){
            if ((*it)==key){
                data[h].erase(it);
                return;
            }
        }
    }
   
    bool contains(int key) {
        int h = hash(key);
        for (auto it =data[h].begin(); it !=data[h].end();it++){
            if ((*it)==key){
                return true;
            }
        }
        return false;
    }
};

/**
 * Your MyHashSet object will be instantiated and called as such:
 * MyHashSet* obj = new MyHashSet();
 * obj->add(key);
 * obj->remove(key);
 * bool param_3 = obj->contains(key);
 */

posted on 2024-07-15 21:32  bihu3637  阅读(11)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3