还是没能逃过手撕环节

面了一家半导体公司(宇子 嵌入式软件开发技术面 参加了十几场面试,手撕代码还是没能逃过 面试官问完项目经历之后,给我出了一道算法题 “有一个树,找到树最左下角的结点值” 三分钟后我信誓旦旦地说“写好啦” 面试官看着我的函数陷入了短暂的沉思面试完之后我搜了一下LeetCode 好像是我理解错了……

全部评论
小天才哈哈,其实层次遍历,每次记录第一个出栈值也可以
2 回复 分享
发布于 08-29 16:57 江苏
他需求就不清晰,我一开始也是这么想的,这种想法完全就是求二叉搜索树最小值的写法肯定也对。说明白是最下面一层最左边的节点就OK了
点赞 回复 分享
发布于 08-30 02:53 湖北
小红书
校招火热招聘中
官网直投

相关推荐

08-22 10:29
已编辑
门头沟学院 嵌入式工程师
面试岗位:乐鑫espressif-嵌入式软件开发工程师WIFI2024年8月21日第一次面试过程:没有让我手撕代码1、业务方向更偏底层操作系统,要汇编、C语言互相嵌套写。先问项目,让自我介绍,因为项目主要偏机器人控制,好像不是很契合。2、锁的机制。说几种锁。自旋锁回答错了,回答说自旋锁当获取不到锁时,会一直等待而不进行任务切换。3、任务调度的原理。感觉自己回答问题时,过于琐碎和细节了,比如一个任务上下文切换,保存任务栈数据,自己可以说的很细,什么16个通用寄存器什么的,以后要简洁、专业。4、任务的栈和堆区别。哪个效率高。没理解,以为栈是自动的,不需要程序员去管理,堆才需要管理,面试官解释原理说,栈是编译器编译成的指令,当进行参数传递时,会用到栈传递参数,此时编译器编译成的指令就是栈指针偏移几个字节。确实牛。所以应该回答栈的效率高。5、问GIT的分布式原理。回答说平常主要用GIT GUI,一般只用merge、pull、push几个指令。面试官答曰好吧好吧。问head指针现在为0,又有了6个comment,现在想合并5和6,用什么指令。说不会,就没问了。6、问CMAKE,问会自己写makefile吗,说不写,只会写CMAKELISTS。就没问了。7、static的作用。回答完后。面试官问static的缺点。确实不知道缺点,说根据需求选用是否需要static修饰即可。面试官最后解释可重入和不可重入,说static会破坏可重入性,会导致每次执行返回的结果不可控。这里争论说如果这个函数需要实现的功能是采集某个传感器的数据,而每次采集需要间隔100ms,就需要用static控制,因此需要按需求选用是否需要static修饰。面试官说确实有的函数必须要用static,但我连static破坏可重入性的概念都没有。8、信号量。说有二值信号量,数值信号量。然后问二值信号量可以实现的功能。答曰线程同步。问还有没有其他功能。想了半天说可以做互斥锁。好像没答对,自己确实不知道其他功能了。9、问汇编,说只在本科时51单片机上用过汇编,近几年没用过,还记得jump、lr几个简单指令。就没问了。10、任务切换的时刻。答曰在中断里面进行任务的上下文切换,pendsv中断。面试官问yield,没听过。面试官解释说主动释放cpu使用权。我说这个知道,在freeRTOS里面主动释放CPU的使用权是调用vtaskdelay。
查看10道真题和解析
点赞 评论 收藏
分享
2 5 评论
分享
牛客网
牛客企业服务