哈希表-拉链法及应用举例

哈希表存储结构:
1.开放寻址法
2.拉链法

哈希表的主要作用:
把一个较大(0-10^9 )的数据映射到较小(0-N(N一般为10^5 到 10^6))的数据

哈希函数:可以把一个从-10^19 到10^19 的中的一个数映射到0-10^5之间的一个数

1.哈希函数怎么写?
一般情况下,直接取模,x%10^5,我们一般模的数,一般取为质数,并且离2的整次幂尽可能的远,这样取,冲突的概率最小

2.冲突:把2个不一样的数映射成同一个数怎么办?
我们可以用开放寻址法或者拉链法来解决这个问题

首先我们先定义哈希函数:h(a) = b,指我们将a映射成b
这里我们只介绍拉链法。
拉链法:
参考文献:
图示算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

举个例子:

维护一个集合,支持如下几种操作:
“I x”,插入一个数x;
“Q x”,询问数x是否在集合中出现过;
现在要进行N次操作,对于每个询问操作输出对应的结果。

输入格式
第一行包含整数N,表示操作数量。
接下来N行,每行包含一个操作指令,操作指令为”I x”,”Q x”中的一种。

输出格式
对于每个询问指令“Q x”,输出一个询问结果,如果x在集合中出现过,则输出“Yes”,否则输出“No”。

每个结果占一行。

数据范围
1≤N≤105
−109≤x≤109

输入样例:
5
I 1
I 2
I 3
Q 2
Q 5

输出样例:
Yes
No

代码如下:

#include <iostream>
#include <cstring>
using namespace std;
const int N = 1e5+3;
int h[N],e[N],ne[N],idx;
void Insert(int x)
{int t = (x%N+N)%N;e[idx] = x;ne[idx] = h[t];h[t] = idx++;}bool find(int x)
{int t = (x%N+N)%N;for (int i = h[t];i!=-1;i = ne[i]){if (e[i]==x){return true;}}return false;
}int main()
{int cnt;cin>>cnt;memset(h,-1,sizeof(h));while(cnt--){string a;int b;cin>>a>>b;if (a[0]=='I') Insert(b);else{if (find(b)){cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}}}return 0;
}

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

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

相关文章

各互联网公司延期上班一览

【延期上班&#xff0c;自我隔离】自从1月26日&#xff0c;国家颁布了延长春节假期的公告之后&#xff0c;互联网行业各公司也纷纷更新了自己的延期上班计划&#xff0c;如下表所示&#xff1a;可以看到&#xff0c;多数公司采取了在家办公的这种模式&#xff0c;还有些公司直接…

计算机系统占有率,微软继续领跑PC操作系统市场 Win10占有率突破25%

腾讯科技讯&#xff0c;据外媒报道&#xff0c;发布一年半之后&#xff0c;Windows 10的市场占有率终于跨过25%这一里程碑&#xff0c;这就意味着&#xff0c;如今世界上每四台电脑中就有一台运行Windows 10系统。Net Applications的数据显示&#xff0c;Windows 10发布后四周内…

递推求组合数

组合数计算公式&#xff1a; 递推公式&#xff1a; 代码模板&#xff1a; #include <iostream> using namespace std; const int N 1010; int c[N][N];int main() {int a,b;cin>>a>>b;//a在下&#xff0c;b在上for (int i 0;i<N;i)for (int j 0;j&…

微软发布 Power BI 2020 上半年发行计划

微软官方与日前发布了 Power BI 在2020上半年的发行计划。本文将在 2020.9 之前都有用&#xff0c;建议收藏查看。从今年开始&#xff0c;我们除了客观描述 Power BI 的特性外&#xff0c;还将加入大量主观观点态度和吐槽&#xff0c;不过不管怎么吐&#xff0c;都只能继续用&a…

AcWing 523. 组合数问题

组合数 Cmn 表示的是从 n 个物品中选出 m 个物品的方案数。  举个例子&#xff0c;从 (1, 2, 3) 三个物品中选择两个物品可以有 (1, 2), (1, 3), (2, 3) 这三种选择方法。  根据组合数的定义&#xff0c;我们可以给出计算组合数 Cmn 的一般公式&#xff1…

远程办公经验为0,如何将日常工作平滑过度到线上?

导语 | 受到疫情影响&#xff0c;很多企业开始考虑远程办公。近日&#xff0c;TVP群里的各位老师们对此话题展开了热烈讨论。TVP张善友老师作为一名创业者&#xff0c;也决定开启远程办公。本文是他对相关经验总结而得的方案&#xff0c;并列出了相关产品清单&#xff0c;希望对…

华为v30pro计算机在哪里,请问V30PRO的数据怎么转到电脑上

[分享交流]请问V30PRO的数据怎么转到电脑上26343电梯直达花粉199050253新学乍练发表于 2020-10-2 18:48:36来自&#xff1a;荣耀V30 Pro 5G最新回复 2020-10-2 19:18:00冷不悔独步江湖发表于 2020-10-2 18:50:59来自&#xff1a;荣耀V30 Pro 5G你所说的数据具体点&#xff0c;图…

伦斯勒理工大学计算机专业好申请吗,2020年伦斯勒理工学院申请难度

伦斯勒理工学院简介伦斯勒理工大学&#xff0c;中国教育部官方名称&#xff1a;仁斯利尔理工大学&#xff0c;英文原名Rensselaer Polytechnic Institute&#xff0c;简称RPI&#xff0c;为全美顶尖理工大学&#xff0c;美国东部高等学府&#xff0c;位于美国纽约州首府奥尔巴尼…

致 wuhan2020 开源社区全体成员的一封信

各位 wuhan2020 开源社区成员&#xff1a;2020年1月25日&#xff0c;春节&#xff0c;在这个特殊的日子&#xff0c;我们正式发起了《wuhan2020&#xff1a;武汉新型冠状病毒防疫开源信息收集平台》的开源项目&#xff0c;用开发者们的方式支援这场没有硝烟的战争。截至2020年1…

如何加入到 wuhan2020 开源项目,打赢这场没有硝烟的战争?

比尔盖茨2015年在 Ebola 爆发之后做的 TED 演讲前言这是比尔盖茨2015年在 Ebola 爆发之后做的 TED 演讲。他认为在未来几十年里&#xff0c;如果有什么东西可以杀掉上千万人&#xff0c;那更可能是个有高度传染性的病毒&#xff0c;而不是战争&#xff1b;不是导弹&#xff0c;…

dotnet core 通过 frp 发布自己的网站

很多时候写出来的网站只能自己内网访问&#xff0c;本文告诉大家如何通过 Frp 将自己的 asp dotnet core 网站发布到外网&#xff0c;让小伙伴访问自己的网站 通过 frp 的方式&#xff0c;可以解决自己的服务器性能太差的问题&#xff0c;通过 frp 的方式需要先存在一个外网的服…

AcWing 211. 计算系数

代码如下&#xff1a; #include <iostream> using namespace std; const int N 1010; const int MOD 10007; int c[N][N]; typedef long long LL; int power(int a,int b) {int res 1;a a%MOD;while(b--) res res*a%MOD;return res; }int main() {int a,b,k,n,m;c…

感谢所有支持wuhan2020项目的朋友!我们招换更多人加入!

2020年1月25日&#xff0c;春节&#xff0c;在这个特殊的日子&#xff0c;我们正式发起了《wuhan2020&#xff1a;武汉新型冠状病毒防疫开源信息收集平台》的开源项目&#xff0c;用开发者们的方式支援这场没有硝烟的战争。截至2020年1月27日17时&#xff0c;全国共有2823个确诊…

WTM系列视频教程:先导篇

WTM系列视频教程序章文字摘要&#xff1a;“这个视频教程我列了个提纲&#xff0c;分成12部分&#xff0c;比较详细的介绍了WTM的功能和使用方法。另外还有一些我个人对于编程的理解&#xff0c;当然个人理解这部分你们就当故事听&#xff0c;不一定对&#xff0c;哈哈。”“有…

我的领域驱动设计运用实例 - 领域啊领域

一、前言断断续续的也有在闲余时间接触领域驱动设计的相关知识&#xff0c;因为目前在工作中更多的还只是一名 crud boy&#xff0c;因此目前也只是对其中的某些知识点有知晓&#xff0c;实际使用的比较少&#xff0c;仅此而已。因此&#xff0c;趁着这个春节假期&#xff0c;整…

AcWing 503. 借教室

代码如下&#xff1a; #include <iostream> using namespace std; const int N 1000010; int r[N],d[N],s[N],t[N]; typedef long long LL; LL b[N]; int n,m; bool check(int mid) {for (int i 1;i<n;i) b[i] r[i]-r[i-1];for (int i 1;i<mid;i){b[s[i]]-d[i…

远程办公从学习开始,潜伏在家,技术如何逆袭?

今年的春节假期特别长&#xff0c;大家为了能够尽快结束武汉新冠肺炎&#xff0c;自主隔离在家。我也花了大概三天的时间写了一篇总结我公司当前支持远程办公的文章&#xff1a;远程办公经验为0&#xff0c;如何将日常工作平滑过度到线上? 这篇文章使用的全部是腾讯的产品&…

AcWing 499. 聪明的质监员

解题思路&#xff1a; https://www.acwing.com/solution/content/33961/ 代码如下&#xff1a; #include <iostream> using namespace std; const int N 200010; int w[N],v[N],L[N],R[N]; typedef long long LL; LL cnt[N],b[N]; int n,m; LL S; LL get_Y(int mid) {…

也读《人类简史》:从动物到上帝的智人

【读书笔记】| 作者 / Edison Zhou这是恰童鞋骚年的第178篇原创文章《人类简史&#xff1a;从动物到上帝》是一本评分极高的书&#xff0c;我在春节期间阅读完&#xff0c;信息量极大&#xff0c;现在将其重点内容总结整理成此文&#xff0c;分享与你。1关于《人类简史》《人类…

二分边界

转载地址&#xff1a; https://www.acwing.com/solution/content/33961/