模拟哈希表

embedded/2024/9/25 2:00:53/
#include<iostream>
#include<cstring>using namespace std;
const int N=100010;
int h[N],e[N],ne[N];
int idx=0;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;t=h[t];while(t!=-1)if(e[t]==x)return true;elset=ne[t];return false;
}int main()
{int n;memset(h,-1,sizeof h);scanf("%d",&n);while(n--){char op[2];int x;scanf("%s%d",op,&x);if(op[0]=='I')insert(x);else{if(find(x))puts("Yes");elseputs("No");}}return 0;
}

该方法是对于每个哈希冲突的位置,用一个模拟链表来存储,然后每次查找都是从这个模拟链表的头部开始依次查找,直到找到或者到了链表尾部才停止。

模拟链表的方式是用e[i]表示i下标存放的实际的数,ne[i]表示i下标所指向的下一位的下标。

因此,对于下标i,j,实际上是e[i]->e[j]。即利用下标获得指向的数,也利用下标得知本位制存放的数。


http://www.ppmy.cn/embedded/116382.html

相关文章

PyRosetta优化蛋白质和小分子的结合

在小分子药物研究中,PyRosetta 提供了强大的工具来筛选与蛋白质结构相互作用的小分子药物。可以利用 PyRosetta 来计算配体与受体蛋白的结合能量、生成低能量构象以及优化分子对接模型。下面是一个演示代码,展示如何使用 PyRosetta 来筛选小分子药物与蛋白质的相互作用。 核…

Centos Stream 9+PHP8+TP8+Workerman4.1+Nginx代理SSL

由于项目需要,新到的服务器需要配置安装标题的环境,搞了两天踩了一个大坑,自己粗心了,没办法。记录一下,希望可以给您一些帮助。 一、环境需求: centos stream9、php8以上、nginx1.24、tp8、workerman4.1、由于是内网跑的,所以用上mkcert创建证书,用nginx代理websock…

【每日一题】LeetCode 2207.字符串中最多数目的子序列(贪心、字符串、前缀和)

【每日一题】LeetCode 2207.字符串中最多数目的子序列&#xff08;贪心、字符串、前缀和&#xff09; 题目描述 给定一个字符串 text 和一个长度为2的字符串 pattern&#xff0c;两者都由小写英文字母组成。你可以在 text 中任意位置插入一个字符&#xff0c;这个插入的字符必…

LabVIEW提高开发效率技巧----合理使用数据流与内存管理

理使用数据流和内存管理是LabVIEW开发中提高性能和稳定性的关键&#xff0c;特别是在处理大数据或高频率信号时&#xff0c;优化可以避免内存消耗过大、程序卡顿甚至崩溃。 1. 使用 Shift Register 进行内存管理 Shift Register&#xff08;移位寄存器&#xff09; 是 LabVIE…

C#基于SkiaSharp实现印章管理(7)

印章中的文本主要分为两种&#xff1a;1&#xff09;从左向右水平绘制的文本&#xff1b;2&#xff09;沿指定路径绘制的文本。前者使用SKCanvas的DrawText绘制文本&#xff0c;后者则使用SKCanvas的DrawTextOnPath绘制文本。   针对上述情况&#xff0c;调整SealElement类型…

JavaWeb JavaScript 11.XML —— 配置文件

生活想埋没我&#xff0c;没想到我是颗种子 —— 24.9.19 一、XML 1.什么是XML XML是EXtensible Markup Languge的缩写&#xff0c;翻译过来就是可扩展标记语言。所以很明显&#xff0c;XML和HTML一样都是标记语言&#xff0c;也就是说它们的基本语法都是标签 可扩展 三个字…

Leetcode42. 接雨水

讲的好的视频讲解 【很难想象这up刷题的精神状态 Leetcode42. 接雨水】 https://www.bilibili.com/video/BV1MC411n7Af/?share_sourcecopy_web&vd_sourceafbacdc02063c57e7a2ef256a4db9d2a rm是right max的意思&#xff0c;lm是left max的意思 时间复杂度&#xff1a; O (…

AI大模型项目实战v0.2: 结合个人知识库

前言 在AI大模型项目实战v0.1版本中&#xff0c;我们实现了一个最简单的基于纯LLM的问答机器人Tbot。 今天升级到v0.2版本&#xff0c;结合个人知识库。 本系列每个版本&#xff0c;都将提供完整的代码文档&#xff0c;获取方法见文末。 下面开启我们的v0.2版本之旅。 v0.2 Tb…