华为一面挂

杭州计算产品线,计算机视觉岗位线上面,基本没问算法相关的问题。没答上来的八股:
1.数组和列表的区别(回答数组是列表内只有数字,列表内部元素可以是其它数据结构,他说不对)?
2.了解线段树嘛?(不了解)
3.抛开编程语言,列表和元组在cpu运行上的区别(原话是这么说的,我没懂他的意思)
4.讲一下数据越界(我说我只会python,不太了解)
其它八股也是这种题,无算法相关题目

手撕(第一次在面试里手撕,就遇到了这么个题) :

卡片中的每张卡片都对应有一个唯一的整数。你需要按以下的顺序对这套卡片进行排序。

最初,这些卡片在卡片组里是正面朝下的(即,未显示状态)。

现在,重复执行以下步骤,直到显示所有卡片为止:

从卡片组顶部抽一张卡片,显示它,然后将其从卡片组中移出。
如果卡片组中仍有卡片,则将下一张处于组顶部的卡片放在卡片组的底部。
如果仍有未显示的卡片,那么返回步骤 1。否则,停止行动。
返回能以递增顺序显示卡片的卡片组顺序。

答案中的第一张卡片被认为处于卡片组顶部。



示例:

输入:[17,13,11,2,3,5,7]
输出:[2,13,3,11,5,17,7]
解释:
我们得到的卡片组顺序为 [17,13,11,2,3,5,7](这个顺序不重要),然后将其重新排序。
重新排序后,卡片组以 [2,13,3,11,5,17,7] 开始,其中 2 位于卡片组的顶部。
我们显示 2,然后将 13 移到底部。卡片组现在是 [3,11,5,17,7,13]。
我们显示 3,并将 11 移到底部。卡片组现在是 [5,17,7,13,11]。
我们显示 5,然后将 17 移到底部。卡片组现在是 [7,13,11,17]。
我们显示 7,并将 13 移到底部。卡片组现在是 [11,17,13]。
我们显示 11,然后将 17 移到底部。卡片组现在是 [13,17]。
我们展示 13,然后将 17 移到底部。卡片组现在是 [17]。
我们显示 17。
由于所有卡片都是按递增顺序排列显示的,所以答案是正确的。

只给20分钟,看题目就花了我好几分钟,写完后发给面试官运行,发现错误示例,问我时间原因能不能马上想到解决方案,太急了当然没那么快想到,直接一面挂掉。

面试之前看了很多面经,为啥就我的手撕不是力扣白准备这么久,浪费感情,以后我就是华黑子了
全部评论
这个确实也是leetcode原题,不过太冷门了。面试官这么问,可能就没想要你
5 回复 分享
发布于 2023-10-20 14:14 江苏
非科班?加上手撕没做出来,那也只能这样了。面试也是要看运气的。翻篇吧,会有你的好运气的。
4 回复 分享
发布于 2023-10-21 16:43 北京
线上面试手撕代码是纸上写还是编辑器上写?
2 回复 分享
发布于 2023-10-25 14:24 浙江
和楼主一样,两面一面一道,二面两道,都不是Leetcode原,只能现场想,写了个大概,讲讲思路
1 回复 分享
发布于 2023-10-20 14:34 陕西
离谱
点赞 回复 分享
发布于 2023-10-20 14:13 新加坡
佬是在国光吗,同华科生医
点赞 回复 分享
发布于 2023-10-20 17:17 湖北
为什么问线段树啊 难道除了OI竞赛线段树真的有实际应用吗😨
点赞 回复 分享
发布于 2023-10-20 23:53 陕西
同华科,同线下一面挂
点赞 回复 分享
发布于 2023-10-21 08:00 湖北
离谱
点赞 回复 分享
发布于 2023-10-21 15:29 重庆
第一问不对的话那答案应该是啥
点赞 回复 分享
发布于 2023-10-21 18:38 天津
太难了
点赞 回复 分享
发布于 2023-10-21 21:49 北京
可能觉得是本科学历或者非科班的原因,会问的比较难
点赞 回复 分享
发布于 2023-10-24 08:31 湖北

相关推荐

1.1 Linux 驱动程序的功能是什么?(1)对设备初始化和释放。(2)进行内核与硬件的数据交互。(3)检测和处理设备出现的错误。1.2内核程序中申请内存使用什么函数?答案:kmalloc()、kzalloc()、vmalloc()。解读:(1)void *kmalloc(size_t size, gfp_t flags);①申请连续的物理内存,这对于要进行DMA的设备十分重要,但大小不能超过128KB,其中有16B是被页描述符占用了。②较常用的flag有GFP_ATOMIC(分配内存的过程是一个原子过程)、GFP_KERNEL(正常分配内存)、GFP_DMA(给DMA控制器分配内存)。③对应的内存释放函数为void kfree(const void *objp)。(2)void *kzalloc(size_t size, gfp_t flags);①kzalloc()相对kmalloc()只是额外增加了__GFP_ZERO标志,除了申请内存外,还会对申请到的内存内容清零。②对应的释放函数也是kfree()。(3)void *vmalloc(unsigned long size);①申请虚拟地址连续的内存空间,但其对应的物理内存不一定连续,因此对申请的内存大小没有限制。②对应的内存释放函数为void free(const void *addr)。③注意:vmalloc()和vfree()可以睡眠,因此不能在中断上下文调用。1.3内核程序中申请内存和应用程序时申请内存有什么区别?答案:内核中申请内存空间用的是函数kmalloc、kzalloc、vmalloc,应用程序申请内存用的函数是malloc。解读:(1)kmalloc/kzalloc直接分配连续的物理地址(虚拟地址也是连续的)。(2)vmalloc分配连续的虚拟地址,但物理地址不一定连续。分配时实际分配了物理内存,不过这个物理内存页面是在公共的页表进行了映射,并没有在本进程的页表进行映射,当访问这段内存时,触发do_page_fault异常(缺页中断)才完成页表的同步工作。(4)malloc是用户空间申请内存的方法,分配连续的虚拟地址,物理地址一般不会连续。在分配时并没有做实际物理页的分配动作,实际分配物理页的动作是在do_page_fault异常(缺页中断)处理中完成的。1.4自旋锁和信号量在互斥使用时需要注意什么?在中断服务程序里面的互斥是使用自旋锁还是信号量? (1)使用自旋锁的进程不会睡眠, 而使用信号量的进程会睡眠。(2)中断服务程序使用的是自旋锁,原因是中断服务程序处于中断上下文,中断上下文是不参与调度的,也就没有保护现场与恢复现场,一旦睡眠就回不来了。 以上内容摘自专刊《嵌入式岗位笔试面试真题讲解》,该专刊不仅有真题讲解,还有经验分享,不清楚嵌入式该学什么的同学,想找嵌入式实习/正式工作的同学,都可以来看看:              https://blog.nowcoder.net/zhuanlan/v0ELPM嵌入式公司推荐:华为、小米、OPPO、VIVO、荣耀、一加、CVTE、大疆、insta360影石、美的 、TCL、海信、创维、烽火、比亚迪、吉利、长安、大众、经纬恒润 、小鹏、图森未来、百度、滴滴、蔚来、理想、 联发科、 紫光展锐 、全志、寒武纪 、晶晨半导体 、汇顶、华为、中兴、浪潮 、TP-LINK、讯飞、商汤、海康威视 、浙江大华、360、小马智行、元戎启行、深信服、移动、联通、电信、旷视、四维图新、中芯国际、复旦微电子、极氪。#牛客AI配图神器#
点赞 评论 收藏
分享
评论
7
47
分享

创作者周榜

更多
牛客网
牛客企业服务