快手C++开发一面面经

1.两道算法题
①输出数组中所有的满足条件的数。应该满足的条件:自己左边的每个数都大于自己,自己右边的每个数都小于自己。
解法1:左右遍历并建二叉查找树(很低效)。解法2:左右遍历的时候设置一个遍历到的最大/小变量,用来判断本元素是否满足条件。(要考虑到有重复元素的情况,面试官说只保存下标就行。到现在也不知道怎么个只保存下标法。。)
②链表相加
input:8->7>6  和 2->3->4
output: 1->1->1->0
我:递归或栈。面试官:规定空间复杂度O(1),不能创建新的节点。
解:逆置链表再相加,在原链表基础上对节点值修改。(不能创建新的节点这个规定让代码写起来需要考虑一些情况,我写了很多行。。面试官建议在保证质量的同时尽量缩减代码冗余度
三十五分钟过去了。
2.线程同步的方法;生产者消费者问题;信号量和互斥锁除了值域不同还有什么区别。
还有一些多线程编程问题比如说两个线程轮流打印A和B。
多线程编程这块实在不会,别问了球球了。。
3.死锁的条件;死锁的例子(答:C++智能指针对象互指引用计数无法归零造成死锁。面试官:这不是线程死锁的例子。)

面试官很年轻,会给提示引导,总体体验挺好。
#面经##校招##C++工程师#
全部评论
第一题能说清楚一点吗,没懂啥意思
点赞 回复 分享
发布于 2020-08-26 16:21

相关推荐

小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
评论
3
22
分享

创作者周榜

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