当前位置: 首页 > news >正文

GESP7级C++考试语法知识(四、哈希表(10、综合应用模版大全)


🏆 第十课:《哈希王国终极挑战——综合应用训练》


一、毕业考试来了!

1、经过前面的学习。

你已经认识了哈希家族的成员:

unordered_map

unordered_set

2、同学们学会了:

✅ 统计次数

✅ 判断存在

✅ 查重问题

✅ Two Sum


3、今天。

程序王国举行一年一度的:

🏆 哈希王国勇士认证考试


4、国王宣布:

谁能通过所有挑战,

谁就是正式的哈希勇士!


今天我们不学新知识。

而是把前面所有知识串起来。


第一关:动物统计中心


1、森林里举行动物大会。

参加的动物:

狗 猫 狗 兔 狗 猫

2、国王问:

每种动物来了几次?


3、思考

这是什么题?


4、是不是:

统计出现次数

5、立刻想到:

unordered_map<string,int>

6、解法

unordered_map<string,int> cnt;

7、每来一个动物:

cnt[name]++;

8、统计过程:

狗 → 3 猫 → 2 兔 → 1

9、核心代码

unordered_map<string,int> cnt; string name; while(cin>>name) { cnt[name]++; }

10、口诀

统计次数不用想, unordered_map登场。 看到一个加一次, cnt[x]最擅长。

第二关:失踪宝石调查


1、仓库:

红宝石 蓝宝石 钻石 黄金

2、问题:

钻石存在吗? 珍珠存在吗?

3、思考

这是:

判断是否存在

想到:

count()

4、解法

unordered_set<string> s;

5、登记:

s.insert("钻石");

6、查询:

s.count("钻石")

返回:

1

说明:

存在

7、核心代码

if(s.count(x)) { cout<<"存在"; } else { cout<<"不存在"; }

第三关:谁是冒名顶替者?


1、进入城堡的人:

Tom Jack Mike Tom

2、问题:

谁重复进入了?

3、思考

这是:

查重问题

想到:

unordered_set

4、解法

unordered_set<string> s;

5、核心代码:

if(s.count(name)) { cout<<"重复"; } else { s.insert(name); }

运行过程:

Tom Jack Mike Tom ← 已经见过

发现:

Tom

重复。


第四关:金币配对挑战


1、金币编号:

2 7 11 15

目标:

9

问题:

哪两个数字加起来等于9?

2、思考

这是:

Two Sum

核心公式:

need = target - x;

3、解法

unordered_set<int> s;

4、核心代码:

for(int x:a) { if(s.count(target-x)) { cout<<"找到"; } s.insert(x); }

运行:

看到2 需要7 没有 记录2

看到7 需要2 有!

成功。


第五关:统计不同数字


1、输入:

1 5 2 1 3 5 5 2

2、问题:

有多少种数字?
1 2 3 5

答案:

4种

3、哈希做法

unordered_set<int> s;

4、每个数字:

s.insert(x);

重复自动消失。


5、最后:

cout<<s.size();

输出:

4

第六关:谁出现次数最多?


1、输入:

1 5 2 1 3 5 5 2

2、统计:

1 → 2 2 → 2 3 → 1 5 → 3

问题:

谁出现最多?

3、解法

(1)先统计:

unordered_map<int,int> cnt;

(2)然后遍历:

int mx=0; int ans=0; for(auto p:cnt) { if(p.second>mx) { mx=p.second; ans=p.first; } }

(3)答案:

5

(4)出现:

3次

第七关:黑名单系统


1、黑名单:

1001 1002 1003

2、有人进入:

1002

3、问题:

是不是坏人?

4、解法

建立:

unordered_set<int> black;

5、查询:

if(black.count(id))

6、结果:

是黑名单用户

第八关:访问记录系统


1、网页访问记录:

Tom Jack Tom Mike Tom

2、问题:

Tom访问过吗?

3、答案:

visit.count("Tom")

4、结果:

存在

第九关:哈希表选谁?


1、比赛时的疑惑:

不知道用:

unordered_map

还是:

unordered_set

记住下面这个表。


2、哈希选择宝典

题目特征选择
统计次数unordered_map
姓名→分数unordered_map
学号→姓名unordered_map
数字→出现次数unordered_map
判断存在unordered_set
查重unordered_set
不同元素个数unordered_set
是否访问过unordered_set

3、一眼判断技巧

如果题目出现:

数字→次数 姓名→分数 学号→姓名

想到:

unordered_map

4、如果题目出现:

是否存在 是否重复 是否出现过 多少种不同元素

想到:

unordered_set

哈希勇士毕业考试

请判断下面题目用什么。


第一题

统计每个数字出现次数

答案:

unordered_map<int,int>

第二题

判断用户是否注册

答案:

unordered_set<string>

第三题

找重复数字

答案:

unordered_set<int>

第四题

统计不同单词数量

答案:

unordered_set<string>

第五题

统计学生成绩

答案:

unordered_map<string,int>

哈希王国最终总结

经过十节课。

你已经掌握:


第一阶段:哈希原理

✅ 哈希表是什么

✅ 哈希函数

✅ 哈希冲突


第二阶段:C++中的哈希表

✅ unordered_map

✅ 统计次数

✅ 判断存在

✅ unordered_set


第三阶段:经典应用

✅ 查重问题

✅ Two Sum

✅ 综合应用


哈希勇士必背模板

统计次数

unordered_map<int,int> cnt; cnt[x]++;

判断存在

if(s.count(x)) { }

查重

if(s.count(x)) { // 重复 } else { s.insert(x); }

Two Sum

if(s.count(target-x)) { // 找到答案 }

统计不同元素

unordered_set<int> s; s.insert(x); cout<<s.size();

哈希王国毕业口诀

哈希表,真神奇, 查找速度天下第一。 统计次数用Map, 出现几次全记下。 判断存在用Set, 重复元素全识别。 Two Sum找搭档, target减它最漂亮。 学会哈希不用怕, 百万数据也拿下!

🏆 恭喜你!

你已经正式获得:

《哈希王国初级勇士证书》

从“会用哈希表”,升级为“真正理解哈希思想的算法高手”!🚀🏆


http://www.jsqmd.com/news/1072351/

相关文章:

  • CVE-2017-17733漏洞复现:从PHP eval()到远程命令执行实战
  • Android Studio项目可直接集成的纯Java/Kotlin双摇杆控件,横屏游戏操控专用
  • 一站式自动化测试平台:打通接口、Web、App三端测试的实战指南
  • 制作5G新时代科学知识页面
  • DVWA靶场实战:文件包含漏洞原理、利用与防御全解析
  • 环境保护税法DID (2015-2023)
  • 2024-TKDE《Feature Space Recovery for Efficient Incomplete Multi-View Clustering》
  • Linux 驱动研究 —— SPI (5)
  • 10 年前代码仓库揭示数学回归:昔日算法天才今何在?
  • SQL注入GetShell实战:从数据库漏洞到服务器控制
  • while 与 do-while 的底层逻辑对决-算平均数
  • 从FineCMS漏洞复现到SQL注入攻防实战:构建Web应用安全防线
  • 获超500亿融资,DeepSeek剑指AI coding,欲打破Anthropic领先局面!
  • ScyllaHide实战指南:绕过IsDebuggerPresent反调试技术
  • pandas基础,索引方式,搜索,无基础看完包学会
  • 【MATLAB】山地复杂地形无人机航路规划仿真
  • 2026永久免费去水印软件推荐:电脑手机+在线网页无广告无内购工具合集
  • 避坑指南:ROCm 7.x 环境下常见的驱动兼容性问题排查
  • IDEA+Claude Code:保姆级编程开发教程,高效开发
  • 423_7个技术写作案例,激发你的灵感
  • 微信QQ消息防撤回工具原理与部署指南:钩子技术与内存拦截解析
  • 《Vue3 从入门到大神12篇》组件通信全景图(下)—— Vuex 到 Pinia 的华丽转身
  • 丹东黄金白银回收铂金旧金回收无套路门店 TOP 榜单 实地测评资料整理
  • 降价也卖不动的合资燃油车开始主动撤出门店-2026.6.23
  • AI建站工具从入门到上线:一篇搞懂智能对话式建站全流程
  • SQL注入漏洞批量挖掘实战:从原理到自动化检测脚本编写
  • GPT-5.6 Agent安全实战:提示注入攻防SOP与企业权限治理手册
  • 2026保姆级教程:word压缩图片大小方法,多种途径压缩word文件大小
  • AI产业陷入光纤荒:需求暴增、扩产困难,中国光纤产业成大赢家!
  • Spring AI 2.x 深度技术解析:从架构重构到企业级落地