7-42 整型关键字的散列映射


题目链接这里
题目大意 :就是写一个线性探测的散列

然鹅,我不会写(?)我一共错了两个地方

  1. 有冲突的情况下,就是线性探查然后往后找,但是我之前写的是t++,应该是t = (t+1)%p;...
  2. 在有重复关键字的时候,重复的那个值不应该放到散列表里面...也就是应该线性探查的时候碰到相同的跳出来就可以了...(别忘了散列是干什么的啊喂!查找!

正确代码:

cpp 复制代码
#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
int main(void)
{
	int n, p;
	scanf("%d%d", &n, &p);
	vector<int> s(p, 0);
    vector<int> flg(p,0);
	for (int i = 0; i < n; i++)
	{
		int a;
		scanf("%d", &a);
		int t = a%p;
		while (flg[t] != 0 && s[t] != a)
			t = (t+1)%p;
		s[t] = a;
        flg[t] = 1;
		printf("%d", t);
		if (i != n - 1)
			printf(" ");
	}
}
相关推荐
Mr YiRan12 小时前
C++面向对象继承与操作符重载
开发语言·c++·算法
蚊子码农16 小时前
算法题解记录--239滑动窗口最大值
数据结构·算法
liliangcsdn16 小时前
A3C算法从目标函数到梯度策略的探索
算法
陈天伟教授16 小时前
人工智能应用- 材料微观:06.GAN 三维重构
人工智能·神经网络·算法·机器学习·重构·推荐算法
liliangcsdn17 小时前
A3C强化学习算法的探索和学习
算法
Figo_Cheung17 小时前
Figo《量子几何学:从希尔伯特空间到全息时空的统一理论体系》(二)
算法·机器学习·几何学·量子计算
额,不知道写啥。18 小时前
HAO的线段树(中(上))
数据结构·c++·算法
LYS_061818 小时前
C++学习(5)(函数 指针 引用)
java·c++·算法
紫陌涵光18 小时前
669. 修剪二叉搜索树
算法·leetcode