文章

28

粉丝

230

获赞

23

访问

244.0k

头像
利用散列函数(哈希表),如果冲突则地址数+1
P1066
发布于2021年3月2日 23:12
阅读数 6.7k

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char const *argv[])
{
    int N,length;
	int A[100000]={0};
	int Hash[100000]={0};
	scanf("%d",&N);
	for (length = 0; length < N; ++length)
	{
		scanf("%d",&A[length]);
	}
	int p = 1;
	for (int i = 0; i < length; ++i)
	{
		if (Hash[A[i]%p]==1)
		{
			p++;
			i=0;
			while(i<p){
                Hash[i]=0;
                i++;
			}
			i=-1;
		}else{
		  Hash[A[i]%p]=1;
		}
	}
	printf("%d\n",p);
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发