哈希表开放寻址法

#include <cstring>
#include <iostream>

using namespace std;

const int N = 200003, null = 0x3f3f3f3f;

int h[N];

int find(int x) {
	int k = (x % N + N) % N;

	while (h[k] != null && h[k] != x) {
		k++;
		if (k == N) k = 0;
	}

	return k;
}

int main() {
	int n;
	cin >> n;
	memset(h, 0x3f, sizeof h);

	while (n--) {
		char op[2];
		int x;	
		cin >> op >> x;

		int k = find(x);
		if (*op == 'I') {
			h[k] = x;
		}
		else {
			if (find(x)) puts("Yes");
			else puts("No");
		}
	}
}
上一篇:JVM堆内存的分代


下一篇:算法基础课:合并集合