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(" ");
	}
}
相关推荐
sin_hielo8 分钟前
leetcode 955
数据结构·算法·leetcode
TechNomad24 分钟前
二分搜索算法的介绍和使用
算法
一起养小猫25 分钟前
LeetCode100天Day4-盛最多水的容器与两数之和II
java·数据结构·算法·leetcode
xie_pin_an36 分钟前
深入解析 C 语言排序算法:从快排优化到外排序实现
c语言·算法·排序算法
陳103037 分钟前
C++:string(4)
开发语言·c++
Hcoco_me40 分钟前
机器学习核心概念与主流算法(通俗详细版)
人工智能·算法·机器学习·数据挖掘·聚类
Hcoco_me41 分钟前
嵌入式场景算法轻量化部署checklist
算法
咸鱼加辣43 分钟前
【python面试】Python 的 lambda
javascript·python·算法
Jerryhut1 小时前
sklearn函数总结十二 —— 聚类分析算法K-Means
算法·kmeans·sklearn
Swift社区1 小时前
LeetCode 453 - 最小操作次数使数组元素相等
算法·leetcode·职场和发展