标签:cnt return 840 int ne 列表 储存 哈希 指针
将一个较大的空间映射到一个较小的空间下。
采用数组模拟链表头插法的操作。
e[ ]储存的是插入的元素的值。
h[ ]储存的是插入的元素对应的哈希值的指针。
ne[ ]储存的是当前指针指向的下一个位置的指针。
#include<cstring> #include<iostream> using namespace std; const int N = 100003; int h[N], e[N], ne[N], cnt; void insert(int x){ int k = (x % N + N) % N; e[cnt] = x; ne[cnt] = h[k]; h[k] = cnt++; } bool find(int x){ int k = (x % N + N) % N; for(int i = h[k]; i != -1; i = ne[i]){ if(e[i] == x)return true; } return false; } int main(){ int n; cin >> n; memset(h, -1, sizeof h);// -1表示当前指针为空指针 while(n --){ char t[2]; int x; scanf("%s%d",t,&x); if(*t == 'I') insert(x); else{ if(find(x))puts("Yes"); else puts("No"); } } return 0; }
标签:cnt,return,840,int,ne,列表,储存,哈希,指针 来源: https://www.cnblogs.com/bz-2021/p/16222322.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。