CPP 选手秋招学习笔记 day31

一、机试

主要是华为机试

1.安排会议室问题

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

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

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

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

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

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

最后遍历一遍返回结果。

3.岛屿数量问题

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

二、面试相关

1.分布式锁的实现

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

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

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

2.Redis 的原子性

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

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

相关推荐
·present·13 小时前
CSAPP(lecture 4_01)
c语言·c++
FPGA小迷弟13 小时前
用 Claude Code 重构遗留系统:从评估到落地的完整实践指南
c++·python·ai·plotly·django·ai编程·claude
程序员-King.14 小时前
【ROS1】Noetic 开发工作流程与常用命令
c++·ubuntu·ros
云深麋鹿14 小时前
C++ | 基于红黑树实现mymap与myset
开发语言·c++
傲世仙尊15 小时前
string增删查改-insert-erase-replace与find加substr组合技
c++
AI产品测评官17 小时前
2026企业AI招聘选型指南:四类技术路线与硬科技场景适配方案
大数据·人工智能·科技·求职招聘·ai-native
·present·17 小时前
CSAPP(lecture 3)
c++
别动我齐刘海17 小时前
机器人 C++ / 系统联调补强2——异常处理、Protobuf
linux·c++·人工智能·学习·算法·机器学习·机器人
basketball61617 小时前
C++ 中字符串与常见类型的转换总结
开发语言·c++
等我调个Bug18 小时前
C++智能指针通俗讲解
开发语言·c++