不使用任何内建的哈希表库设计一个哈希集合 具体地说,你的设计应该包含以下的功能。add(value):向哈希集合中插入一个值。 contains(value) :返回哈希集合中是否存在这个值。
发布日期:2021-10-06 02:38:39 浏览次数:4 分类:技术文章

本文共 957 字,大约阅读时间需要 3 分钟。

不使用任何内建的哈希表库设计一个哈希集合

具体地说,你的设计应该包含以下的功能

  • add(value):向哈希集合中插入一个值。
  • contains(value) :返回哈希集合中是否存在这个值。
  • remove(value):将给定值从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。

示例:

MyHashSet hashSet = new MyHashSet();hashSet.add(1);         hashSet.add(2);         hashSet.contains(1);    // 返回 truehashSet.contains(3);    // 返回 false (未找到)hashSet.add(2);          hashSet.contains(2);    // 返回 truehashSet.remove(2);          hashSet.contains(2);    // 返回  false (已经被删除)

注意:

  • 所有的值都在 [0, 1000000]的范围内。
  • 操作的总数目在[1, 10000]范围内。
  • 不要使用内建的哈希集合库。

class MyHashSet {

    private int[] dataSet = new int[1000005];

    /** Initialize your data structure here. */

    public MyHashSet() {

    }

     public void add(int key) {

        if (key != 0) {

            dataSet[key] = key;

        } else {

            dataSet[key] = -1;

        }

    }

    public void remove(int key) {

        dataSet[key] = 0;

    }

    /** Returns true if this set contains the specified element */

    public boolean contains(int key) {

        if (key != 0) {

            return dataSet[key] != 0;

        } else {

            return dataSet[key] == -1;

        }

    }

}

 

转载地址:https://blog.csdn.net/luxuiary/article/details/106993674 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【微服务-Spring源码】Idea + Gradle + Spring源码环境搭建
下一篇:给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列。 请你将数组按 [x1,y1,x2,y2,...,xn,yn] 格式重新排

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月20日 03时34分59秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

C++面经总结之《Effective C++》(一) 2019-04-27
C++面经总结之《Effective C++》(二) 2019-04-27
这是什么“虎狼之词”啊!!!程序员的健康问题,看一线老中医怎么说!!! 2019-04-27
打开我的收藏夹 -- Python数据分析杂谈 2019-04-27
上手Pandas,带你玩转数据(1)-- 实例详解pandas数据结构 2019-04-27
上手Pandas,带你玩转数据(2)-- 使用pandas从多种文件中读取数据 2019-04-27
上手Pandas,带你玩转数据(3)-- pandas数据存入文件 2019-04-27
爬虫遇上不让右击、不让F12的网站,该怎么办? 2019-04-27
上手Pandas,带你玩转数据(4)-- 数据清洗 2019-04-27
上手Pandas,带你玩转数据(5)-- 数据转换与数据定位 2019-04-27
上手Pandas,带你玩转数据(6)-- 摆脱对pandas可视化丑图的刻板印象吧 2019-04-27
从零开始,学会Python爬虫不再难!!! -- (1)开篇:初识爬虫,基础铺垫 丨蓄力计划 2019-04-27
从零开始,学会Python爬虫不再难!!! -- (2)承接:解析网页,抓取标签 丨蓄力计划 2019-04-27
AttributeError: module ‘urllib‘ has no attribute ‘quote‘的解决办法 2019-04-27
linux shell — 6.初识 EXT2 文件系统 2019-04-27
Java — String(字符串) 2019-04-27
linux shell — 7.linux 磁盘与文件系统管理 2019-04-27
linux shell — 8.linux 磁盘与文件系统管理(2) 2019-04-27
Java — 事件监听、事件处理 初体验 2019-04-27
linux — Centos 7(第一天) 使用时出现的问题及解决方法 2019-04-27