游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

哈希表和哈希函数及相关练习

  哈希表的原理
  哈希表(又称散列表)的原理为:借助哈希函数,将键映射到存储桶地址。更确切地说,
  首先开辟一定长度的,具有连续物理地址的桶数组;
  当我们插入一个新的键时,哈希函数将决定该键应该分配到哪个桶中,并将该键存储在相应的桶中;
  当我们想要搜索一个键时,哈希表将使用哈希函数来找到对应的桶,并在该桶中进行搜索。
  负载因子又叫装填因子,是哈希表的一个重要参数,它反映了哈希表的装满程度。
  冲突解决:线性试探法链地址法公共溢出区法再哈希法
  哈希函数的性质
  1)input无穷
  2)outputs固定大小
  3)insameoutsame
  4)输入输出会发生碰撞
  5)具有离散性
  哈希函数的特征
  1)相同输入导致相同输出
  2)不同输入均匀分布
  设计一个哈希集合
  不使用任何内建的哈希表库设计一个哈希集合(HashSet)。
  实现MyHashSet类:
  voidadd(key)向哈希集合中插入值key。
  boolcontains(key)返回哈希集合中是否存在这个值key。
  voidremove(key)将给定值key从哈希集合中删除。如果哈希集合中没有这个值,什么也不做。defineMAXLEN100000初始化桶的数量classMyHashSet{private:vectorintset〔MAXLEN〕;使用数组实现哈希集合返回对应的桶的索引intgetIndex(intkey){returnkeyMAXLEN;}在特定的桶中搜索键,如果该键不存在则返回1intgetPos(intkey,intindex){每个桶中包含一个列表,遍历所有桶中的元素来寻找特定的键for(inti0;iset〔index〕。size();i){if(set〔index〕〔i〕key){returni;}}return1;}public:MyHashSet(){}voidadd(intkey){intindexgetIndex(key);intposgetPos(key,index);if(pos0){如果键不存在,则添加set〔index〕。pushback(key);}}voidremove(intkey){intindexgetIndex(key);intposgetPos(key,index);if(pos0){如果键存在,则删除set〔index〕。erase(set〔index〕。begin()pos);}}boolcontains(intkey){intindexgetIndex(key);intposgetPos(key,index);returnpos0;}};哈希集合的操作includeunorderedsetintmain(){1。初始化哈希集unorderedsetinthashset;2。新增键hashset。insert(3);hashset。insert(2);hashset。insert(1);3。删除键hashset。erase(2);4。查询键是否包含在哈希集合中if(hashset。count(2)0){cout键2不在哈希集合中endl;}5。哈希集合的大小cout哈希集合的大小为:hashset。size()endl;6。遍历哈希集合for(autoithashset。begin();it!hashset。end();it){cout(it);}cout在哈希集合中endl;7。清空哈希集合hashset。clear();8。查看哈希集合是否为空if(hashset。empty()){cout哈希集合为空!endl;}}使用哈希集合寻找重复元素的模板boolfindDuplicates(vectorTypekeys){将type替换为keys的实际类型unorderedsetTypehashset;for(Typekey:keys){if(hashset。count(key)0){returntrue;}hashset。insert(key);}returnfalse;}
  设计一个哈希映射
  不使用任何内建的哈希表库设计一个哈希映射(HashMap)。
  实现MyHashMap类:
  MyHashMap()用空映射初始化对象
  voidput(intkey,intvalue)向HashMap插入一个键值对(key,value)。如果key已经存在于映射中,则更新其对应的值value。
  intget(intkey)返回特定的key所映射的value;如果映射中不包含key的映射,返回1。
  voidremove(key)如果映射中存在key的映射,则移除key和它所对应的value。defineMAXLEN100000初始化桶的数量classMyHashMap{private:vectorpairint,intmap〔MAXLEN〕;使用数组实现哈希集合返回指定桶的索引intgetIndex(intkey){returnkeyMAXLEN;}在桶中搜索键,如果不存在则返回1intgetPos(intkey,intindex){每个桶包含一个数组,遍历桶中的所有元素来查找指定的keyfor(inti0;imap〔index〕。size();i){if(map〔index〕〔i〕。firstkey){returni;}}return1;}public:MyHashMap(){}value始终为正voidput(intkey,intvalue){intindexgetIndex(key);intposgetPos(key,index);if(pos0){map〔index〕。pushback(makepair(key,value));}else{map〔index〕〔pos〕。secondvalue;}}如果存在映射关系,则返回value,否则返回1intget(intkey){intindexgetIndex(key);intposgetPos(key,index);if(pos0){return1;}else{returnmap〔index〕〔pos〕。second;}}如果存在key的映射,则删除该映射关系voidremove(intkey){intindexgetIndex(key);intposgetPos(key,index);if(pos0){map〔index〕。erase(map〔index〕。begin()pos);}}};
  给你一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。classSolution{public:boolcontainsDuplicate(vectorintnums){unorderedsetintset;for(inti0;inums。size();i){if(set。find(nums〔i〕)!set。end()){returntrue;break;}else{set。insert(nums〔i〕);}}returnfalse;}};
  给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。classSolution{public:intsingleNumber(vectorintnums){unorderedsetinthash;for(intx:nums){if(hash。find(x)hash。end())hash。insert(x);elsehash。erase(x);}returnhash。begin();}};
  给定两个数组nums1和nums2,返回它们的交集。输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。classSolution{public:vectorintintersection(vectorintnums1,vectorintnums2){sort(nums1。begin(),nums1。end());sort(nums2。begin(),nums2。end());vectorintvec;指针变量intflagINTMIN;for(inti0,j0;inums1。size()jnums2。size();){if(nums1〔i〕nums2〔j〕)i;elseif(nums1〔i〕nums2〔j〕)j;else{if(nums1〔i〕!flag)vec。pushback(nums1〔i〕);flagnums1〔i〕;i;j;}}returnvec;}};

网络货运迎来强监管!交通运输部修订道路运输条例为深入贯彻落实党中央和国务院关于进一步深化放管服改革的部署要求,有效提升道路运输管理服务质量和水平,优化营商环境,近日,交通运输部起草了《道路运输条例(修订草案征求意见稿)》(……谎言和实事的展现近几年来,所有人最畅谈的话题之一莫过于房地产市场,首先从控地开始。号召严禁集体和个人以任何理由占用耕地,划定逾越占用耕地面积红线,需要澄清的是耕地面积合理利用,集体依法办事,个……云南西双版纳边检站践行工匠精神的数据尖兵人民法治网讯(通讯员蒋金格)提起王强,熟悉的人都评价他是个实实在在的技术人,高高的个子略显憨厚,一双炯炯有神的眼睛透露着年轻人的朝气和蓬勃,大家都亲切的叫他强哥。9月12日,西……美国总统拜登首次确认将包围台岛,美国真的有能力来信守承诺吗?你相信美国的承诺吗?美国对盟友的承诺会真的有效吗?美国总统拜登在10月21日,接受美国媒体访谈时声称,如果台湾发生统一战争,美国会保卫台湾,是的,我们有这样做的承诺。美国不想和……罕见,美军侦察船再现东沙,美军频繁测绘南海地形到底意欲何为?根据南海态势感知报道,10月2526日,美海军玛丽西尔斯号海洋测量船前往东沙群岛东南海域进行了一次快速测绘作业,27日已经驶离至巴士海峡附近。看到这则消息,明显是美军再次对南海……3。0T后驱直六发动机,2022年亮相,全新一代马自达6渲染早前,马自达就声称2021年之后离开美国汽车市场,所有产品不在美国市场销售。转战进军高端市场,同时将马自达6从前轮驱动的中型轿车发展成为后驱直列六缸运动型轿车。近日,据日媒消息……轻点唤醒和抬起唤醒谁更耗电?iPhoneXS实测,分享省电技小编刚从苹果8plus换到了苹果XS,苹果8p已经用了一年半了,电池健康也只有83了。但是换到了苹果xs,我明显觉得续航还没有老机8p强,这就有点不科学了大家都知道,ol……没有麒麟臂,一样拍大片MOZA魔爪MiniMX手机折叠稳定器写在前面大家好,我是小猴。随着手机在生活中的应用越来越普及,传统专业照相机的功能越来越下放到消费者的手机上来实现了,手机摄像头不仅具备了光学防抖功能,结合数字防抖技术还可……Kubeadm部署HA的Kubernetes集群部署HA的Kubernetes集群前提条件准备好系统环境、安装好docker并启动服务和安装好kubeadm、kubectl和kubelet程序包三步。系统环境要求……比特币价格达到历史最高点自上周五,美国首支比特币期货ETF获得SEC批准上市之后,比特币价格迎来强势上涨,重回6万美元关口,至高时达到62995美元,当前(10月19日15:00)价格在6。2万美金左……2020百货购物中心数字化实践案例盘点突如其来的新冠肺炎疫情虽然重创了百货、购物中心行业,但也逼迫企业迅速转变,锻炼了新的经营能力。放眼未来,行业整体向上的趋势并未改变,智慧化、场景化、注重体验将成为行业发展的新方……千年难遇的自然奇观,世间绝美云层恰如一圈圈的金色光环,笼罩着塔楼,有一种佛光普照的感觉。龙卷风铺面而来,小竹屋瞬间就被摧毁了,自然的力量,真是可怕!夏威夷火山喷发的刹那,积聚多时的能量终于爆发……
紧跟风口!TikTok在欧洲测试应用内购物功能日前,字节跳动旗下的TikTok又考虑增加新业务,正在欧洲测试其应用内购物,与街头潮牌Hype等品牌合作。1。TikTok开始测试应用内购物该服务允许卖家在TikTok应……这次联想集团的柳传志会官司缠身吗?应该彻底查清,纪检监察应该介入,彻底给全国人民一个交代,期待,期待办柳,长治久安。放柳,腐败齐天。在中国共产党的带领下,摸着石头过河,让一部分先富起来带动大家都富起……美股三大指数集体收跌,苹果结束日线11连涨36氪获悉,30日收盘,美股三大指数集体收跌,标普500跌0。63,纳指跌1。21,道指跌0。19;大型科技股走弱,苹果跌0。66,结束日线11连涨;Netflix跌2。64,……盛和资源首季净利润预计增长125。31141。41盛和资源(600392)3月29日发布首季业绩预增公告,预计实现净利润为7。00亿元7。50亿元,净利润同比增长125。31141。41。业绩变动原因:报告期内,受新能源……谷歌正测试YouTubePWA支持下载视频离线观看据MSPoweruser报道,自今年1月以来,YouTube已经可以作为PWA使用,谷歌目前正在进行YouTube实验,允许那些拥有YouTube高级订阅的用户在ChromeO……互联网与新媒体的关系?1992年互联网第一台民用电脑出世。2003年第一台手机电脑问世!更方便快捷迅速可携的的让信息直达用户体验。是全新的知识传递方式!让官媒放下视角的架子学会与年轻人玩……苹果计划将下个季度iPhoneSE产量较原计划削减20iPh【苹果计划将下个季度iPhoneSE产量较原计划削减20iPhone13系列产量减少200万支】财联社3月28日电,据日经亚洲引述消息人士报导,苹果公司计划让下一季iPhone……真无线充电技术终于要来了,vivo或将首发,你期待这项技术吗当然期待!题主所说的真无线技术应该是半导体公司Dialog与Energous公司联合推出的WattUP无线充电方案,与市面上基于电磁感应原理的无线充电方式不同,这是一种全……网爆苹果iPod复活无刘海iPhoneXS就是iPodTou【手机中国新闻】近日,有iOS开发者发现,3月7日上线的iOS12。2Beta4中,似乎暗藏了疑似苹果iPod系列新品iPodTouch7的产品。在这张iOS图片中,HLSip……方大炭素再次承担甘肃省科技重大专项方大炭素再次承担我省科技重大专项近日,从方大炭素技术研发部获悉,该公司将再次承担我省科技重大专项,并获得项目资助研发经费400万元。方大炭素是以石墨电极、高炉炭砖为……一代安卓巨头竟沦落至此,要靠卖品牌断尾求生提起HTC,这或许是存在于许多人回忆中的品牌,最近这几年其出现在广大消费者关注点的次数也是越来越少了。而相比于小米、华为、OPPO、vivo在发布新旗舰时的热火朝天,甚至于HT……荣耀50惊艳亮相首发高通SM7325,主打性价比路线在友商相继推出新品时,荣耀手机终于坐不住了。刚刚,有网友曝光了荣耀手机即将发布的新旗舰:荣耀50。究竟荣耀50能否在竞争如此激烈的手机行业中脱颖而出呢?下面我们一起深入地来分析……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网