7-42 整型关键字的散列映射 (25 分)(思路加详解)兄弟们 来呀 写题呀

一:题目

给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key)=Key将关键字映射到长度为P的散列表中。用线性探测法解决冲突。

输入格式:
输入第一行首先给出两个正整数N(≤1000)和P(≥N的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出N个整型关键字。数字间以空格分隔。

输出格式:
在一行内输出每个整型关键字在散列表中的位置。数字间以空格分隔,但行末尾不得有多余空格。

输入样例:

4 5
24 15 61 88

输出样例:

4 0 1 3

二:思路

利用哈希表原理,进行存储数据,然后处理一个位置冲突问题

三:上码

#include<bits/stdc++.h>
using namespace std;int main(){int N,M;cin >> N >> M;int array[M];for( int i = 0; i < M; i++){array[i] = 10000;  //之所以  初始化为这么大 是为了解决 下标为0时,关键值也为0,如果 再出现一个余数为0的数,他本来的下标应为1,//array[i] = 0; //但如果我们初始化为0的话,他就会出现0  可以拿下方例子进行验证}for( int i = 0; i < N; i++){int temp;cin >> temp;int K = 1;int remainder = temp % M;while( array[remainder] != 10000 && array[remainder] != temp ){//如果是相同的元素则直接输出其在数组中的下标remainder = (temp + K)%M;K++;}K = 1;//为下次冲突做准备array[remainder] = temp;if( i != N - 1)cout << remainder << ' ';elsecout << remainder; } 
}//4 5
//0 15 61 20

在这里插入图片描述

四:失败码

最近老这样,这个是我第一次写的码,测试数据没问题,就是超时了


#include<bits/stdc++.h>
using namespace std;int main(){int N,M;int flag = 0;cin >> N >> M;vector<int>v1(M);vector<int>v2;for( int i = 0; i < M; i++ ){v1[i] = -1;}for( int i = 0; i < N; i++ ){int temp;cin >> temp;int K = 1;int remainder = temp%M;if( v1[remainder] == -1 )v1[remainder] = temp;else if (v1[remainder] != temp){while( remainder < M ){remainder = (temp + K)%M;K++;}}v1[remainder] = temp;if( i != N -1 ){cout << remainder << ' ';}elsecout << remainder;}
}//5 5
//24 15 61 88 15

加油BOY!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TIOBE 8 月榜单:C 力压 Java 夺得第一,Java掉了1.6 个点

喜欢就关注我们吧&#xff01;TIOBE 已公布 2020 年 8 月的编程语言排行榜。本月编程语言界无大事发生。增长指数最高的是排在第八位的 R 语言&#xff0c;TIOBE 猜测它有可能成为 2020 年的年度编程语言。年初的时候 R 语言排名 18&#xff0c;之后一直保持上升趋势&#xff0…

7-43 字符串关键字的散列映射 (25 分)(思路+详解+不懂的兄弟们来呀)兄弟们我干了5个小时,一个一个测试点过的

一&#xff1a;题目 7-43 字符串关键字的散列映射 (25 分) 给定一系列由大写英文字母组成的字符串关键字和素数P&#xff0c;用移位法定义的散列函数H(Key)将关键字Key中的最后3个字符映射为整数&#xff0c;每个字符占5位&#xff1b;再用除留余数法将整数映射到长度为P的散列…

C#刷剑指Offer | 在O(1)时间删除链表节点

【C#刷题】| 作者 / Edison Zhou我们来用之前学到的数据结构知识来刷《剑指Offer》的一些核心题目&#xff08;精选了其中30道题目&#xff09;&#xff0c;希望对你有帮助&#xff01;本文题目为&#xff1a;在O(1)时间删除链表节点。1题目介绍题目&#xff1a;给定单向链表的…

7-44 基于词频的文件相似度 (30 分)(思路加详解+set容器简便做法)兄弟们冲呀呀呀呀呀 今天你AC了吗

一&#xff1a;题目 实现一种简单原始的文件相似度计算&#xff0c;即以两文件的公共词汇占总词汇的比例来定义相似度。为简化问题&#xff0c;这里不考虑中文&#xff08;因为分词太难了&#xff09;&#xff0c;只考虑长度不小于3、且不超过10的英文单词&#xff0c;长度超过…

堪称艺术品级的应用开发框架,Abp有望超越Spring?

ABP是ASP.NET Boilerplate的简称&#xff0c;是一个开源且文档友好的应用程序框架。ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点&#xff0c;它旨在成为一个通用的WEB应用程序框架和项目模板。ASP.NET Boilerplate 基于DDD的经典分层架构思想&a…

7-45 航空公司VIP客户查询 (25 分)(思路+详解+map用法解释+超时解决)兄弟们来呀冲压呀呀呀呀

一&#xff1a;题目 不少航空公司都会提供优惠的会员服务&#xff0c;当某顾客飞行里程累积达到一定数量后&#xff0c;可以使用里程积分直接兑换奖励机票或奖励升舱等服务。现给定某航空公司全体会员的飞行记录&#xff0c;要求实现根据身份证号码快速查询会员里程积分的功能…

linux sed 写文件,使用sed对文件进行操作

使用sed对文件进行操作[日期&#xff1a;2012-12-07]来源&#xff1a;Linux社区作者&#xff1a;bobo12082119[字体&#xff1a;大 中 小]一.附加文本使用a\在指定行后面附加1行或多行&#xff1b;若不指定放置的位置&#xff0c;则默认放到每一行的后面。附加文本时&#xff0…

修复被破坏的 vs 工程设置(续)

缘起 在上一篇文章——《修复被破坏的 vs 工程设置》中&#xff0c;我分享了修复被破坏的 vs 工程设置的实战。本以为圆满解决了问题&#xff0c;没想到另有玄机。所以又来分享一篇刨根问底的文章。查看文件 打开 Microsoft.Cpp.Win32.user.props 一看&#xff0c;里面并没有任…

7-46 新浪微博热门话题 (30 分)(思路+详解+set + map)pta逐个点过的 来呀兄弟们

一 &#xff1a;题目 新浪微博可以在发言中嵌入“话题”&#xff0c;即将发言中的话题文字写在一对“#”之间&#xff0c;就可以生成话题链接&#xff0c;点击链接可以看到有多少人在跟自己讨论相同或者相似的话题。新浪微博还会随时更新热门话题列表&#xff0c;并将最热门的…

工作十余年,还是一直被问 委托和事件 有什么区别? 真是够了

一&#xff1a;背景1. 讲故事前几天公司一个妹子问我&#xff0c;事件和委托有什么区别&#xff1f;先由衷感叹一下&#xff0c;编码十余年&#xff0c;年轻的时候常被面试官问起&#xff0c;现在年长了&#xff0c;却被后辈们时常问候&#xff0c;看样子逃离编码生涯之前是跑不…

7-47 打印选课学生名单 (25 分)(两种做法)(思路加详解+map+vector做法+最后一个点超时解决)+兄弟们冲丫丫

一&#xff1a;题目 假设全校有最多40000名学生和最多2500门课程。现给出每个学生的选课清单&#xff0c;要求输出每门课的选课学生名单。 输入格式: 输入的第一行是两个正整数&#xff1a;N&#xff08;≤40000&#xff09;&#xff0c;为全校学生总数&#xff1b;K&#xf…

SwaggerUI看烦了,IGeekFan.AspNetCore.Knife4jUI 帮你换个新皮肤

背景好像是上周四&#xff0c;看到微信群有人说java有轮子swagger-bootstrap-ui&#xff0c;而c#&#xff0c;就是找不到。于是我一看&#xff0c;就说大话&#xff1a;“这个只是一套UI&#xff0c;他这个有开源地址么”被at说:你试试...当天晚上就把swagger-ui, Knife4j,Swas…

7-48 银行排队问题之单窗口“夹塞”版 (30 分)(思路和详解+map做法)来呀Baby!

一&#xff1a;题目 排队“夹塞”是引起大家强烈不满的行为&#xff0c;但是这种现象时常存在。在银行的单窗口排队问题中&#xff0c;假设银行只有1个窗口提供服务&#xff0c;所有顾客按到达时间排成一条长龙。当窗口空闲时&#xff0c;下一位顾客即去该窗口处理事务。此时如…

7-49 打印学生选课清单 (25 分)(思路+详解+map做法(一对多)+超时解决)Come baby!

一&#xff1a;题目 假设全校有最多40000名学生和最多2500门课程。现给出每门课的选课学生名单&#xff0c;要求输出每个前来查询的学生的选课清单。 输入格式: 输入的第一行是两个正整数&#xff1a;N&#xff08;≤40000&#xff09;&#xff0c;为前来查询课表的学生总数&…

记一次批量处理数据库中的敏感信息

前言 对于一些敏感数据&#xff0c;往往会对其加密后再入库&#xff0c;这个是对数据安全性的一个最为简单的措施。最常见的莫过于手机号码和身份证号了&#xff0c;相信还是有不少公司对这些敏感信息是明文存储的。万一被别人发现系统漏洞&#xff0c;或者是被拖库&#xff0c…

7-50 畅通工程之局部最小花费问题 (35 分)(思路加详解)来呀兄弟们冲呀呀呀呀呀呀呀

一&#xff1a;题目 某地区经过对城镇交通状况的调查&#xff0c;得到现有城镇间快速道路的统计数据&#xff0c;并提出“畅通工程”的目标&#xff1a;使整个地区任何两个城镇间都可以实现快速交通&#xff08;但不一定有直接的快速道路相连&#xff0c;只要互相间接通过快速…

十多位全球技术专家,为你献上近十个小时的.Net微服务介绍

.Net Conf: Focus on Microservices 是 .Net Conf 社区在 2020 年 7 月 30 日举办的线上分享活动。整个活动视频长达近 10 个小时。今天我们来看看都发生了什么。章节汇总本次分享由十多位来自全球的资深技术专家在线分享&#xff0c;涵盖了当前 .Net 在微服务领域的利器。包括…

5G发展是绵绵秋雨 应循序渐进

现阶段5G技术成熟度有待提升当下&#xff0c;在行业内5G基站的短板被调侃为“覆盖、成本、功耗三个3”&#xff0c;也就是3倍成本&#xff0c;3倍功耗、1/3覆盖。就功耗来说&#xff0c;5G基站是4G基站功耗的3倍左右。中国移动董事长杨杰就在GTI国际产业峰会表示&#xff0c;“…

7-52 两个有序链表序列的交集 (20 分)(思路加详解尾插法)come Boby!

一&#xff1a;题目 已知两个非降序链表序列S1与S2&#xff0c;设计函数构造出S1与S2的交集新链表S3。 输入格式: 输入分两行&#xff0c;分别在每行给出由若干个正整数构成的非降序序列&#xff0c;用−1表示序列的结尾&#xff08;−1不属于这个序列&#xff09;。数字用空…

明源云创CI/CD技术演进

源宝导读&#xff1a;在敏捷迭代的过程中需要能够快速的把开发的代码集成打包部署到各个环节对应的环境中。为了高效稳定的完成这个工作&#xff0c;我们引入了DevOps实践理论&#xff0c;并形成了配套的CI/CD工具。本文将介绍云创的CI/CD工具如何演进的过程。一 、传统构建在最…