CPP 选手秋招学习笔记 day31

一、机试

主要是华为机试

1.安排会议室问题

考察对优先队列的使用,具体做法是用多个 vector 分别存储计划在每层参加会议的组以及组的人数。

从顶层往下遍历因为每组要求会议室楼层的组只能往下去安排。

2.判断函数最大栈空间以及在最大栈空间下的最长调用链

考察的是关于图的知识,第一个是怎么去存储图的节点,用 adj 的 Pair,每个是一个 vector

对于环,可以用一个 vector 存储从头开始的节点,然后每个放入 vector 中的他连接的那些节点入度减 1。

然后对于每个节点存储一个到当前节点开始的最大栈空间和最长链

最后遍历一遍返回结果。

3.岛屿数量问题

考察的是 DFS,每次就把岛屿连通的陆地标记,或者把它们变成非岛屿

二、面试相关

1.分布式锁的实现

用 key 表示锁,value 表示是否加锁,然后 set nx 无锁就创建并加锁,delete 会释放锁。

分布式锁过期时间避免锁不被释放,同时多节点避免服务不可用。

对于 value 每个要设置独一无二的值,避免被其他节点误删。

2.Redis 的原子性

一个是通过原子加和原子减实现,另一个是通过 lua 脚本打包,不会被打断,还有就是通过加锁。

总结:关于图的用 queue 可以实现去判断有无环。

相关推荐
小七在进步6 小时前
string的使用(1)
c++·visual studio
白杨尚青7 小时前
C++进阶篇(六):map 和 set 的模拟实现——用红黑树封装 mymap/myset(迭代器 + operator[])
开发语言·c++·迭代器·stl·set·map·红黑树
kloc10 小时前
聊天室项目入口网关子服务的实现
linux·c++
csdn_aspnet13 小时前
C++ 3个有序点的方向(Orientation of 3 ordered points)
c++·算法
小七在进步14 小时前
string的使用(2)
c++
青少儿编程课堂15 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:折半搜索优化子集枚举(Meet in the Middle)解析
c++·python·算法·bfs·信息学竞赛
wo_jack16 小时前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list
青少儿编程课堂18 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园连连看解析
c++·python·算法·bfs·信息学竞赛
草莓熊Lotso18 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
David猪大卫1 天前
【C++修炼】map 和 set 的使用
c语言·开发语言·数据结构·c++·经验分享·笔记·学习