AcWing 840. 模拟散列表
原题链接
简单
作者:
Acvv_scl
,
2021-03-02 23:55:57
,
所有人可见
,
阅读 280
java题解
import java.util.*;
public class Main{
static int N=200003;
static int INF=0x3f3f3f;
static class Hash{
int h[];
int n;
public Hash(int x){
n=x;
h=new int[n];
Arrays.fill(h,INF);
}
int find(int x){
int k=(x%N+N)%N;
while(h[k]!=INF&&h[k]!=x){
k++;
if(k==n)k=0;
}
return k;
}
}
public static void main(String[]args){
Scanner sc=new Scanner(System.in);
Hash hash=new Hash(N);
int n=sc.nextInt();
while(n-->0){
String op=sc.next();
int x=sc.nextInt();
int k=hash.find(x);
if("I".equals(op)){
hash.h[k]=x;
}else{
String res=hash.h[k]==INF?"No":"Yes";
System.out.println(res);
}
}
}
}
加油