7.23 小红书提前批笔试 后端-C++

2小时,单选+不定项选择+3道编程。

选择题考点包括dp、继承、信号量、KMP、linux系统、HTTP状态码、循环队列、操作符重载等。

编程题:

  • 第一题

题意:给出n(<1e5)和k。构造包含n个数的正整数数组,满足数组的最大公约数为k,求数组总和的最小值。

题解:构造数组形如【k,2k,...,nk】即可。

  • 第二题

题意:给出线段的长度n(<1e9)、区间的数量m(<1e5)、截取的长度k(<1e9),以及m个区间(1<=L[i],R[i]<=1e9,保证区间不相交)。用k尽量覆盖更多的区间总长度,求最大覆盖的值。

题解:前缀和+滑动窗口 首先,对于最大的结果,一定存在一个截取窗口在其右边界与某个区间的R[i]重合时满足。可以想象一下,对于一个窗口左右移动时发生的变化。那么从左向右枚举区间,维护窗口左端所在的区间编号,计算当下最大值更新答案。复杂度为O(m)。

  • 第三题

题意:给出一个n个数的数组(n<2e5,-1e9<a[i]<1e9)和一个数x(-1e9<x<1e9)。可以把数组中某个值改为x,也可以不修改。求所有连续子数组中总和的最大值。

题解:前缀和 首先对数组求一遍前缀和sum,那么子数组[l, r]的和即为sum[R] - sum[L-1],再求前缀最大值数组L和后缀最大值数组R(L[i]=max(sum[1,...,i]),R[i]=max(sum[i,...,n]))。先考虑不使用x,那么枚举子数组包含i,ans = max(R[i] - L[i - 1]),即i右侧的最大sum值减去i左侧的最小sum值。接着考虑加入x的影响。如果把a[i]改为x,那么sum[i~n]的值都会增加(x - a[i]),R[i]的值也会增加(x - a[i])。那么对于ans的计算稍加修改,ans = max(R[i] - L[i - 1] + x - a[i])。复杂度为O(n)。

————————————————————————

update:约了8.6面试,不能改时间,有点烦。

#小红书提前批##笔试#
全部评论
第一题我怎么只过了82
点赞 回复
分享
发布于 2023-07-23 21:22 上海
很多岗感觉都是一样的题
点赞 回复
分享
发布于 2023-07-24 00:52 上海
滴滴
校招火热招聘中
官网直投
黄佬!
点赞 回复
分享
发布于 2023-07-24 19:20 浙江
明天笔试,也是后端c++,有点紧张,大佬有什么推荐的题可以临时刷一刷的吗
点赞 回复
分享
发布于 2023-08-05 20:24 广东

相关推荐

音视频面经合集:腾讯、快手、OPPO、美团。纯靠面试后的回想,应该会有不少的疏漏。合集(上):腾讯&nbsp;OPPO腾讯PCG客户端(一二面都是一小时左右):一面:1.&nbsp;面试官介绍部门,问地域是否接受2.&nbsp;做题&nbsp;子序列3.&nbsp;介绍360度视频编码推流器项目(跟科研有关),接着聊了一些360视频的开放性问题4.&nbsp;介绍视频编码流程,哪些部分属于无损编码5.&nbsp;播放器项目相关问题,包队列的设计,倍速实现等,这里应该问了不少6.&nbsp;TCP&nbsp;UDP的区别7.&nbsp;MP4介绍,如果不知道moov&nbsp;box的具体位置,如何快速起播8.&nbsp;场景题:实现透明视频,在编码这一块需要做什么操作?二面:1.&nbsp;自我介绍&nbsp;2.&nbsp;进程和线程区别;线程同步方式&nbsp;锁&nbsp;信号量&nbsp;条件变量;什么场景适用什么方式;无锁编程&nbsp;3.&nbsp;TCP&nbsp;三次&nbsp;四次;然后很多场景题(具体记不清了);可靠性具体是什么;HTTP&nbsp;GET&nbsp;POST&nbsp;4.&nbsp;打草稿讲思路:a.&nbsp;相交链表&nbsp;判断交点&nbsp;b.&nbsp;queue实现stack&nbsp;c.100枚硬币,其中一枚质量不同,给你一杆秤判断它的轻重,最少称几次OPPO多媒体开发(一二面都是30分钟多一点):一面:1.&nbsp;自我介绍&nbsp;2.&nbsp;一个实际软件项目的开发流程思路2.&nbsp;指针和引用&nbsp;野指针&nbsp;悬空指针&nbsp;智能指针&nbsp;4.&nbsp;线程池&nbsp;线程&nbsp;线程同步&nbsp;锁的分类&nbsp;死锁&nbsp;5.&nbsp;7层模型&nbsp;TCP&nbsp;UDP区别&nbsp;TCP可靠性&nbsp;6.&nbsp;设计模式&nbsp;7.&nbsp;FLV&nbsp;MP4&nbsp;8.&nbsp;播放器项目&nbsp;音视频同步&nbsp;信息交互&nbsp;低延迟播放器的实现&nbsp;FFmpeg中的AVPacket和AVFrame&nbsp;9.&nbsp;科研项目介绍二面:1.&nbsp;自我介绍&nbsp;2.&nbsp;CPU调度算法&nbsp;进程&nbsp;线程&nbsp;3.&nbsp;7层模型&nbsp;TCP三次握手&nbsp;4.&nbsp;各种排序算法介绍&nbsp;5.&nbsp;两个项目介绍&nbsp;6.&nbsp;工作场景中的开放性问题&nbsp;互联网加班现象怎么看;&nbsp;AB两个模块有模糊边界&nbsp;你是其中一个模块负责人&nbsp;模糊区域出现问题&nbsp;怎么沟通解决
点赞 评论 收藏
转发
音视频面经合集:腾讯、快手、OPPO、美团。纯靠面试后的回想,应该会有不少的疏漏。合集(下):快手&nbsp;美团快手音视频SDK开发(一二三面都是一小时+):一面:1.自我介绍2.360度视频;播放360视频是怎么做的;跟一般视频的编码区别;360视频生成;3.播放器项目:音视频同步实现;为什么要做同步;解码模块;包与帧的缓存设计;4.音视频问题:PTS与DTS的区别;视频帧格式;YUV&nbsp;RGB相关问题;H265相对于H264的改进;超高倍速怎么实现;5.智能指针;播放器项目中的线程安全设计&nbsp;锁&nbsp;条件变量;6.做题:反转链表;二叉树的最大宽度二面:1.所做的科研工作(这里聊了很久)&nbsp;介绍一下项目&nbsp;2.MP4 3.视频编码&nbsp;变换的具体操作&nbsp;变换是无损编码嘛4.面向对象特性&nbsp;多态&nbsp;模板&nbsp;lambda函数&nbsp;5.做题&nbsp;第K个排列三面:1.自我介绍 2.音视频相关场景题:&nbsp;用户端4k解码限制&nbsp;怎么实现8K的效果;&nbsp;360视频分区域ROI编码;网络受限怎么调整编码或者传输;360科研项目简单介绍;超分的实现方法;3.C++基础:C++特性;内联函数&nbsp;内联与宏定义的区别;菱形继承;C++与C为什么不能一起编&nbsp;extern&nbsp;;智能指针sharedptr是线程安全的嘛&nbsp;weakptr&nbsp;4.线程同步方式&nbsp;自旋锁&nbsp;生产者消费者模式中的线程同步问题&nbsp;5.HTTP相关;TCP的粘包&nbsp;滑动窗口&nbsp;6.播放器项目&nbsp;音视频同步&nbsp;SEEK的操作与目的&nbsp;为什么缓冲区要清空&nbsp;倍速&nbsp;7.LRU缓存美团音视频开发(一二面都是一小时左右):一面:1.自我介绍2.TCP挥手;close_wait状态;服务端很多close_wait状态是什么原因;服务端很多time_wait状态是什么原因,风险,解决方案;3.智能指针;auto_ptr;多态;虚函数的实现;纯虚函数;4.进程和线程的区别;协程;线程独享的资源,为什么要这些资源;5.不用额外空间,完成两个值的交换;6.FLV;RTMP握手,后续的交互过程;7.做题:重排链表二面:1.挑一个项目介绍;2.拓展360视频的一些内容;3.STL&nbsp;sort函数,一个普适的sort函数实现;4.http相关;TCP&nbsp;close_wait状态相关;5.FLV&nbsp;SRS&nbsp;6.做题:翻转K个一组链表
点赞 评论 收藏
转发
12 49 评论
分享
牛客网
牛客企业服务