稀碎从零算法笔记Day49-LeetCode:设计哈希集合

题型:模拟

链接:705. 设计哈希集合 - 力扣(LeetCode)

来源:LeetCode

题目描述

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

实现 MyHashSet 类:

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

题目样例

示例:

输入:
["MyHashSet", "add", "add", "contains", "contains", "add", "contains", "remove", "contains"]
[[], [1], [2], [1], [3], [2], [2], [2], [2]]
输出:
[null, null, null, true, false, null, true, null, false]解释:
MyHashSet myHashSet = new MyHashSet();
myHashSet.add(1);      // set = [1]
myHashSet.add(2);      // set = [1, 2]
myHashSet.contains(1); // 返回 True
myHashSet.contains(3); // 返回 False ,(未找到)
myHashSet.add(2);      // set = [1, 2]
myHashSet.contains(2); // 返回 True
myHashSet.remove(2);   // set = [1]
myHashSet.contains(2); // 返回 False ,(已移除)

提示:

  • 0 <= key <= 106
  • 最多调用 104 次 addremove 和 contains

题目思路

模拟题,重现一下哈希集合的数据结构(虽然没要求没有重复元素把)

感觉没必要想太多,想想unordered_set的特点,创一个vector<bool>,长度包含所有的数字,出现过一次就1,没有就置0 ; 删除就置0,添加就置1

C++代码

class MyHashSet {vector<bool>ans;
public:MyHashSet() {ans.resize(1000001);}void add(int key) {ans[key] = 1;}void remove(int key) {ans[key] = 0;}bool contains(int key) {return ans[key];}
};/*** 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);*/

结算页面

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/816576.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关闭win10搜索中的热门搜索广告

任务目标&#xff0c;关闭掉这个煞笔热门搜索功能 1.首先WinR快捷键&#xff0c;输入“regedit”来打开注册表 2.在注册表中定位到计算机\HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows 并在Windows下新建“项”&#xff0c;命名为“Explorer”&#xff0c;并在这新…

Python大数据分析——一元与多元线性回归模型

Python大数据分析——一元与多元线性回归模型 相关分析概念示例 一元线性回归模型概念理论分析函数示例 多元线性回归模型概念理论分析示例 线性回归模型的假设检验模型的F检验理论分析示例 模型的T检验理论分析示例 相关分析 概念 a 正相关&#xff1b;b 负相关&#xff1b;c…

【leetcode面试经典150题】32.串联所有单词的子串(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…

2024 十五届蓝桥杯省赛Python B组

以下仅是我的答案&#xff0c;仅供参考&#xff0c;欢迎讨论。 A&#xff1a;穿越时空之门 二进制、四进制转换。答案&#xff1a;63。 B&#xff1a;数字串个数 排除0&#xff0c;总的方案数9^10000,减去不存在3和不存在7的2*8^10000&#xff0c;再加上同时不存在3和7的7^…

RedisTemplate

3.3.RedisTemplate 在Sentinel集群监管下的Redis主从集群&#xff0c;其节点会因为自动故障转移而发生变化&#xff0c;Redis的客户端必须感知这种变化&#xff0c;及时更新连接信息。Spring的RedisTemplate底层利用lettuce实现了节点的感知和自动切换。 下面&#xff0c;我们…

Vue3---基础8(生命周期)

生命周期 Vue组件在创建时要经历一系列的初始化步骤&#xff0c;在此过程中Vue会在合适的时机&#xff0c;调用特定的函数&#xff0c;从而让开发者有机会在特定阶段运行自己的代码&#xff0c;这些特定的函数统称为&#xff1a;生命周期钩子 Vue2 在Vue2中&#xff0c;组件的生…

InnoDB中高度为3的B+树最多可以存多少数据?

参考&#xff1a; &#x1f525;我说MySQL每张表最好不超过2000万数据&#xff0c;面试官让我回去等通知&#xff1f; - 掘金 考虑到磁盘IO是非常高昂的操作&#xff0c;计算机操作系统做了预读的优化&#xff0c;当一次IO时&#xff0c;不光把当前磁盘地址的数据&#xff0c;…

计算机网络常问面试题

一.HTTPS是如何保证安全传输的 https通过使⽤对称加密、⾮对称加密、数字证书等⽅式来保证数据的安全传输。 客户端向服务端发送数据之前&#xff0c;需要先建⽴TCP连接&#xff0c;所以需要先建⽴TCP连接&#xff0c;建⽴完TCP连接后&#xff0c;服务端会先给客户端发送公钥…

CentOS 设置静态 IP 配置

防止 CentOS 服务器的 IP 地址更改&#xff0c;可以设置静态 IP 配置&#xff0c;而不是依赖 DHCP&#xff08;动态主机配置协议&#xff09;分配 IP 地址。 以下是在 CentOS 上配置静态 IP 地址步骤&#xff1a; 1. 编辑网络配置文件 打开配置文件。配置文件通常位于 /etc/s…

您与此网站之间建立的连接不安全

正如标题一样&#xff0c;打开的网站地址栏显示&#xff1a;如果你使用浏览器提示您与此网站之间建立的连接不安全、与此站点的连接不安全、网站非安全连接等类似提示。 是因为网站采取的是http地址协议&#xff0c;这种协议有一种缺点&#xff0c;当您常使用的网站出现上述提示…

Vue项目实战:基于用户身份的动态路由管理

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…

【动态规划】【背包问题】

1.确定dp数组含义&#xff0c;初始化 2.确定遍历顺序 3.确定dp公式 ‘’‘’ 0-1背包问题&#xff0c;可以分为二维dp和一维dp 有两种状态&#xff0c;当前物品放还是不放入背包 0-1背包&#xff0c;物品只能放一次&#xff0c;因此一维dp要考虑遍历顺序 ‘’’ class solu…

后端返回树结构

出参结构 Getter Setter public class TreeResponse implements Serializable {// 主键private Long id;// 父级节点private Long parentId;// 层级private Byte layer;// 编码private String docCode;// 名称private String docName;// 子节点private List<TreeResponse&g…

yolov5 获取错误样本

yolov5根据把预测错误的样本找出来,并把预测结果打印出来,输出图片 标注时,标注的结果就显示出来了,红框是预测的结果,其他颜色是标注的结果,可以根据结果对比进行调整标注。 注意:标注时独立的json文件格式 batch_mouse_ok.py """ Usage:$ python pa…

如何安装MacOS的虚拟机?mac安装虚拟机的步骤 虚拟机安装MacOS VMware Fusion和Parallels Desktop19

要在Mac上运行MacOS的虚拟机&#xff0c;常用的方法是使用虚拟化软件如VMware Fusion或Parallels Desktop。 以下是安装MacOS的虚拟机的主要步骤&#xff1a; 1. 检查系统要求&#xff1a;确定您的Mac硬件和操作系统满足安装要求。您需要一台具备足够性能的Mac&#xff0c;并…

223 基于matlab的结构有限元分析

基于matlab的结构有限元分析。包括基于4节点四面体单元的空间块体分析、基于4节点四边形单元的矩形薄板分析、基于3节点三角形单元的矩形薄板分析、三梁平面框架结构的有限元分析、四杆桁架结构的有限元分析、基于8节点六面体单元的空间块体分析。每个程序都要相应的文档说明。…

设计模式之策略模式例题:根据用户等级算积分的接口

问题 问题&#xff1a;写一个根据游戏用户等级来送赠送积分的方法接口&#xff0c;一共有100个等级&#xff0c;每种等级都有一个方法&#xff0c;使用策略模式。 在设计一个根据游戏用户等级来赠送积分的接口时&#xff0c;我们需要考虑几个关键点&#xff1a; 解决 性能&a…

spring-cloud-alibaba微服务Sentinel

Sentinel 官方网站 sentinel-dashboard-1.8.7.jar包下载地址 在window通过命令行启动&#xff08;java -Dserver.port8080 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.7.jar&#xff09;&#xff0c;可以通过 -Dserver.port修改控制台的端口 使用的版本最好…

CentOS7.9.2009安装配置logstash7.11.1

本文章使用CentOS7.9.2009服务器以root用户安装配置logstash7.11.1软件 1.服务器信息 [root@elasticsearch ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@elasticsearch ~]# 2.logstash安装配置 --> 上传logstash7.11.1版本至CentOS7.9.200…

【设计模式】4、prototype 原型模式

四、prototype 原型模式 https://refactoringguru.cn/design-patterns/prototype 如果希望 复制对象, 可使用 “prototype 模式” 如果 “待复制的对象” 是 interface 而不是 class, 或者如果 class 有 private 变量时. 无法知道 "待复制的对象"的细节, 则需要其…