| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> acwing840 模拟散列表 2021/11/27 -> 正文阅读 |
|
[数据结构与算法]acwing840 模拟散列表 2021/11/27 |
维护一个集合,支持如下几种操作:
现在要进行?NN?次操作,对于每个询问操作输出对应的结果。 输入格式 第一行包含整数?NN,表示操作数量。 接下来?NN?行,每行包含一个操作指令,操作指令为? 输出格式 对于每个询问指令? 每个结果占一行。 数据范围 1≤N≤1051≤N≤105 输入样例:
输出样例:
?一般来说,hash表的时间复杂度可以看作o1 这里先分享一下拉链法,会用到之前的单链表,但是我单链表的题没写题解,等会我去回头写一下单链表的题解 这个拉链法就是在坐标为0~1e5-1 的哈希表坐标上,在各个槽点分出去链表,算是每个槽点的值,运用单链表的方法来存储,然后在查询的时候,用同样的方法获得哈希表下标,然后一个个遍历这个槽点的值。 这个取哈希表坐标的方法叫除留余数法,mod的值应该是个质数,所以这道题取N = 1e5 + 3? memset用法是把数组内所有的值赋值同一个数 memset(data, 0, sizeof(data)); 就是把data【】数组的值全部赋值为0; 它插入的时候是一直在交界处增加新值。
?开放寻址法(蹲坑法) 只需要一个数组,find函数返回“坑位” 0×3f3f3f3f是acm中常用的无穷大变量 这个方法的数组长度是给定长度的2~3倍,所以这里N = 2e5 + 3 当k==N的时候相当于坑位走了一遍,让k从第0个坑位重新找hh
|
|
|
上一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:49:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |