⑴ 一般面试要求会C/C++数据结构的会出什么题考你
数据结构只是基础,面试中最可能的形式是考查算法。算法中又会用到哈希、链表等各种数据结构。给你一个例子:
问: 设计算法,求两个集合的交集。
就这么个简单的问题,要实现一个高效的算法可能用到排序算法、哈希等数据结构的知识
⑵ 算法岗面试都会考代码吗
会。
算法岗面试的第一关,手撕代码环节,主要考察你对数据结构和一般算法的掌握,以及作为码农最基本的编程能力。二至三道编程题写完之后,就进入到了面试的第二关,算法基础知识考察环节,这里的算法指的是机器学习、深度学习以及细分方向上,比如CV、NLP相关的算法知识。
⑶ 刷LeetCode对于国内IT企业面试帮助大吗
就目前的情况来看,国内公司社招面试中,对于对于算法的考验越来越多,很多公司会拿leet code的原题用于面试。
根据我的了解,目前国内的中型厂记下的基本上不会考验算法题不会哪一道编程题,让你手写指示会咨询你一些项目经验,包括一些基础的数据库类的知识,或者是编程基础类知识,比如说你用java开发怎么会问你spring cloud的spring boot相关知识,还有一些可能会问你高并发,生产问题处理,linux服务器命令等等,手撕红黑树的情况不多。
对于国内的这些外资企业微软、虾皮等等,可能会问一些算法题,但一般都不会特别难。数据结构问链表二叉树,算法问动态规划之类的吧,也是min和easy难度。
对于头部的大厂可能会出一些hard级别的算法题,或者是改编过的编程题。目前程序员的人数越来越多,所以未来可能会有更多的公司会通过手撕编程题的方式进行面试。
对于校招来说说来的时候呢,是非常有帮助的,听不起。各大公司的面试题中都会有算法题,所以必须要通过刷leetcode来提升自己的。有可能你会遇到一些原题。
不管怎么样说算法题都是很有帮助的,有助于提升编码能力和逻辑能力,可以让你的编码能力一直保持一个不错的水平,因为很多人平时都是curd小子,很多基础知识都忘记了包括算法能力。
leetcode上题很多,逐渐你会发现刷题太耗时间,所以建议采用哈夫曼树规则。高频题优先,各个tag刷10题以上掌握典型题总结算法套路,先把触手放在能掌握的地方。然后再去重点刷贪心和dp,分类好思路和模板。再去牛客搜公司名刷一些该公司面试题,有个底不至于面试没见过。建议medium为主,easy和hard为辅。
一零言,聊聊IT,谈谈技术
⑷ 程序员面试时都要考算法吗
看应聘什么职位...我面试的时候一点算法都没有涉及到...
某些特定开发岗位确实需要扎实的算法基础.比如根云存储,大数据什么的.但是像普通的程序开发岗位应该对算法要求不大.
所以,我猜测:如果面试跟算法不怎么相关的职位考官还问算法的问题时,应该是你前面的回答还不足以让考官录用你。考官在给你展示自己的机会.
⑸ 面试笔试中让设计一种算法,是不是必须要写出代码来啊
一般面试考算法会考察你几个方面
1. 如果考官觉得你基础知识不错,考算法一般就是看你对一些常见知道的熟练程度,是否会灵活运用。就是看你有没有解决一个新问题的能力。一般伪代码说想法就行,一般会较难的问题。
2. 若觉得你的基础知识不行,可能目的就是探查你有没有基础的代码能力了。因为有很多人能说,但是不能写,哈哈。
3. 有些公司一定要求是要写代码的。或者有一些考官是这种风格的。但是写的话多半都是简单的,所以有机会多熟悉一下,基本的像排序,冒泡,快排什么的啦。
⑹ 小米面试每一轮都有算法吗
一共两轮,两个不同类型的面试官,一轮要一小时左右,两轮都要纸上写代码,给我最大的感触就是问得特别深,是越来越深,直到你答不出来。
第一轮问了我STL的一些数据结构,其内部实现。我说了map是红黑树,unordered_map是hash表,之后我不小心说到hash表最常见的实现就是一个链表数组,链表是为了处理冲突。于是又问我hash表处理冲突的方式,也难不倒我。再问让我写一个hash表存储用户的图片,大概要多少位hash值才能尽可能没冲突。我大概算了一下。下一个问题是while(1) sleep(x);这里x大概要多少秒(可小数)才能使cpu忙碌。大家估计一下我心理阴影面积。然后看我操作系统内部了解不多,又问了一堆。(这就是为什么我们应该好好读<<深入理解计算机系统>>)我答得十分糟糕。之后让我写一个链表反转,我感觉有点诧异,想不到这玩意还真这么容易考到。诧异是诧异,没花我多长时间就搞定一个O(n)时间O(1)空间的链表反转了。又让我说如果要实现一个lrucache,怎么实现?我记得教材上有说过用栈,我就直接说栈,面试官反问了我一堆问题,后来我又说用链表,不过可能空间消耗比较大,面试官问我为什么,我说有个指针域(我也是蠢哭),然后就直接打发我走了。
本来我以为我没机会了,想不到一轮面试官给面子,让我到了二轮。
一上来,看见我简历上一个项目写了tfidf,就问我其是什么,我大概说了是频率和逆向频率的综合,又要我给出精确定义。我放弃(不太确定)。虽然我不久前刚看过定义,但当时没怎么仔细思考,毕竟sklearn里都有现成实现。之后让我写一个singleton,这玩意当然难不倒我。写完后又要我写一个线程安全的版本,我用了锁,但他说开销太大。我继续放弃(我印象中确实有的,但是比较底层,我对这种底层的东西没啥兴趣,要是有兴趣,一面也不会那么惨了),并反问他怎么办,他说了一个check twice(但我之后上网没找到)。之后问我拓扑排序(当然难不倒我)和java线程模型,这里我十分可笑,竟然把可重入锁说成自旋锁(自旋锁是lock后并不会让此线程立刻放弃cpu,而是等待一会;可重入锁是同一个线程可以多次获得)。又让我写二叉树后序的迭代版本,我压根没写过,只看过一次,那次看的实现还特别复杂,最惨的是,房间里另一对面试的有些影响我,心想这下出事了。磨磨蹭蹭写出了一个版本,面试官一看就否决了,我仔细一看,确实有问题,不过加上两个标记还是成功搞定。之后问了我要是去了小米想做什么,我十分可笑,说我想做比较酷的事(正常情况我是不会这么说的,我真正想法是做有趣的事,考虑到是小米),又问我做过什么酷的事,我答不出来,随口说了个装linux系统,使用cli,顿时感觉自己low爆了,还不如说在android上装linux呢!还问我哪方面比较薄弱,我当然是说计算机图形学了。之后说了我一些缺点,比如有点油(tfidf惹的货),知识面广但都不深。数据结构是不错(可能是我简历上写了解B树和红黑树),但算法不行(笔试最后两题,都只能给出差强人意的答案,不够极致(原话))。之后就把我打发走了,事后我还觉得有些希望。但这么多天过去了,越想越觉得没戏。
感觉自己还是太弱,还得多读书,多写代码,来年春招再投。