腾讯音乐后端一面

项目里的分块上传,文件名解析

数据库,只会建表查询

sendfile

进程线程同异

链表数组,队列和栈,栈的应用

多态:编译时多态和运行时多态,虚表怎么找虚函数

tcpudp区别

手撕:字符串转数字

已经佛了😇😇,主打一个为各位面试官贡献kpi,建议我转go

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-25 17:51
点赞 评论 收藏
分享
------------------------------------题目一:题目大意:箱子上有 n (1 <= k <= n <= 5e4) 个按钮,每个按钮上的数字在 1 到 k 之间。你需要按顺序选择按钮,形成一个长度为 k 的子序列,要求这个子序列包含 1 到 k 每个数字各一次,并且是所有可能方案中字典序最小的。解法思路:这是一个经典的单调栈问题。核心是贪心思想,遍历数字序列,用一个栈来维护当前最优的子序列。当遇到一个新数字时,如果它比栈顶数字小,并且栈顶数字在后续序列中还会出现,那么就可以将栈顶数字弹出(相当于“反悔”),换入当前这个更小的数字,以获得更优的字典序。通过一个计数数组来记录每个数字的剩余出现次数,以判断是否可以安全地弹出栈顶。------------------------------------题目二:题目大意:给定一个长度为 n (1 <= n <= 100) 的01编码带,以及 m (1 <= m <= 6) 个需要验证的非负整数 (0 <= a_i < 1024)。你需要判断,这 m 个整数各自的二进制表示(不含前导零)能否在编码带中找到对应的、互不重叠的连续片段。(T 组数据, 1 <= T <= 20)解法思路:由于需要验证的数字数量 m 非常小,这指向了搜索算法。首先,预处理出每个数字的二进制字符串,并在编码带中找到它所有可能的匹配位置。然后,使用深度优先搜索(DFS)来为这 m 个数字分配匹配区间。搜索过程中,用一个布尔数组或位集记录编码带上已被占用的位置,确保新分配的区间不与之前的重叠。一个重要的优化是,优先为匹配位置选择最少的数字进行搜索,这样可以更快地剪枝,提高效率。
投递京东等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务