腾讯、阿里、今日头条等互联网企业算法工程师的面试套路
- 格式:doc
- 大小:14.15 KB
- 文档页数:3
算法工程师面试题第一篇:算法工程师面试题之一——搜索算法搜索算法是计算机科学中非常重要的一个领域,它涉及到如何高效地在大规模的数据集中查找指定的信息。
在大数据时代,搜索算法的优化和应用成为了很多企业以及互联网公司非常关注的问题。
作为一名算法工程师,熟悉各种搜索算法以及它们的优化策略非常重要。
在搜索算法中,最常见的就是线性搜索算法。
这种算法的思想很简单,就是逐个地比较目标值和每个元素,如果找到相等的元素则返回其索引,如果搜索完整个数据集都没有找到相等的元素,则返回-1。
然而,线性搜索算法的时间复杂度是O(n),其中n是数据集的大小,这意味着随着数据集的增大,搜索所需的时间也会线性增长,效率较低。
为了提高搜索的效率,人们提出了很多优化的搜索算法。
其中最著名的就是二分查找算法,也称为折半查找算法。
二分查找算法的前提是数据集必须是有序的,它通过每次将数据集分成两半来进行搜索。
如果目标值等于中间元素,则返回其索引;如果目标值小于中间元素,则在左半部分继续搜索;如果目标值大于中间元素,则在右半部分继续搜索。
通过不断缩小搜索范围,二分查找算法的时间复杂度为O(log n),其中n是数据集的大小。
相比于线性搜索算法,二分查找算法具有更高的效率。
除了二分查找算法,还有其他一些高效的搜索算法,比如哈希查找算法、树状数组、布隆过滤器等。
这些算法在不同的场景下有着不同的应用,选择合适的算法可以大幅度提高搜索效率。
在实际的面试过程中,除了对搜索算法有深入的了解,算法工程师还需要具备一定的编程能力。
面试官可能会出一些编程题目,要求面试者用代码实现某种搜索算法。
因此,平时要多加练习,掌握搜索算法的实现和优化技巧。
总而言之,搜索算法是算法工程师面试的重要内容之一。
面试者需要熟悉各种搜索算法以及它们的应用场景,同时还要具备一定的编程能力。
只有在理论和实践上都能够熟练掌握搜索算法,才能在面试中给出令人满意的答案。
第二篇:算法工程师面试题之二——排序算法排序算法是计算机科学中最基本的算法之一,它涉及到对一组数据按照一定的顺序进行排列。
第1篇——揭秘互联网内容创作领域的顶级挑战一、面试背景随着互联网的飞速发展,内容创作领域已经成为了一个热门的行业。
各大互联网平台纷纷涌现出一批又一批的头条大神,他们凭借独特的创作才华和敏锐的市场洞察力,吸引了无数粉丝。
为了选拔出最具潜力的内容创作者,某知名互联网平台特举办了一场别开生面的头条大神面试。
以下是本次面试的题目,共计2500字以上。
二、面试题目1. 自我介绍请用不超过300字的篇幅,简要介绍自己的姓名、年龄、学历、专业背景、兴趣爱好以及为何选择从事内容创作行业。
2. 内容创作心得(1)请结合自身经历,谈谈你对内容创作行业的理解,以及你认为一个好的内容创作者应具备哪些素质?(2)请举例说明你在创作过程中遇到的困难,以及你是如何克服这些困难的?(3)请分享一次你创作内容获得成功的心得体会,并谈谈你对成功的理解。
3. 市场洞察力(1)请分析当前互联网内容创作领域的发展趋势,以及你认为未来内容创作将面临哪些挑战?(2)请针对当前热门话题,如人工智能、区块链、虚拟现实等,谈谈你对这些领域在内容创作中的应用前景。
(3)请结合自身作品,谈谈你对内容与用户需求的契合度,以及如何提高内容传播效果。
4. 创意与创意表现(1)请简述一次你创作出独特创意的过程,并说明你如何将这个创意转化为实际内容?(2)请列举三个你认为具有创意的内容创作案例,并分析其创意所在。
(3)请谈谈你对创意在内容创作中的重要性,以及如何培养自己的创意思维。
5. 团队协作与沟通能力(1)请结合自身经历,谈谈你在团队协作中遇到的挑战,以及你是如何应对这些挑战的?(2)请举例说明一次你与其他创作者或团队成员进行沟通协作的经历,并分析沟通的重要性。
(3)请谈谈你认为团队协作在内容创作中的意义,以及如何提高团队协作效率。
6. 紧急情况应对能力(1)请列举一次你在内容创作过程中遇到突发事件,如素材丢失、灵感枯竭等,并说明你是如何应对的?(2)请谈谈你认为紧急情况应对能力对内容创作者的重要性,以及如何提高这方面的能力?(3)请结合实际案例,谈谈你认为在内容创作中如何处理紧急情况,以最大限度地降低损失。
算法岗位面试题
在算法岗位的面试中,你可能会遇到各种类型的问题,这些问题旨在测试你的算法设计、数据结构知识以及问题解决能力。
以下是一些常见的问题示例:
1. 编程问题:这些问题通常会要求你编写一段代码来解决某个具体问题,例如排序、搜索、二分查找、图论问题等。
2. 算法分析问题:这些问题可能要求你分析某个算法的时间复杂度、空间复杂度或者复杂度界。
3. 数据结构问题:面试官可能会问关于常见数据结构(如数组、链表、树、图等)的问题,或者关于如何实现特定数据结构的问题。
4. 系统设计问题:这些问题可能要求你设计一个系统来解决某个问题,例如设计一个搜索引擎、社交网络或电子商务平台。
5. 数据库问题:面试官可能会问关于数据库设计和查询优化的问题,例如如何设计一个高效的数据存储系统或如何优化查询性能。
6. 系统编程问题:这些问题可能要求你编写代码来操作系统级功能,例如文件系统操作、多线程编程或网络编程。
7. 概率和统计问题:面试官可能会问关于概率和统计的问题,例如计算某个事件的概率或解释某个统计方法的意义。
8. 数学问题:这些问题可能涉及数学概念,例如线性代数、微积分或离散概率论。
9. 逻辑推理问题:这些问题可能要求你根据给定的信息进行逻辑推理,例如解决逻辑谜题或解释某个逻辑定理。
10. 问题解决技巧问题:这些问题可能测试你的问题解决技巧,例如如何解决一个复杂的问题或如何找到一个问题的解决方案。
请注意,这只是一部分可能的面试问题示例,具体的问题会根据具体的岗位和面试官的要求而有所不同。
在准备面试时,建议复习相关的算法和数据结构知识,练习编写代码和解决各种类型的问题,以提高你的面试表现。
数挖一面:一面面试官是个做cv的,大概问了:卷积层个数计算方式卷积计算复杂度softmax公式softmax 的loss function卷积层的实现总体来说一面面试官人还是比较好,我不是做cv的,他问问题也比较循循善诱,遇到不会的他也会引导。
但就是感觉自己实习项目那么多机器学习大数据相关的一点也不提,有点不开心吧。
不过好在让我过了二面:讲一下实习经历然后我实习用到了xgb, xgb的loss func写一下。
我写出来了,面试官又说想看到底是怎么一阶二阶泰勒展开。
我说在代码框写的不是很方便,,然后就说了一遍。
感觉这个时候面试官就不是很满意了然后问xgb到底是怎么预测的,我说把每一轮预测的结果加起来,他说是分类问题,难道第一轮预测为第一类,第二次预测为第二类,然后把类别相加吗?我说每一轮算的都是连续值,是个得分,最后把所有的加起来得到概率再分类。
面试官表情尴尬。
(有大神来告知我么)xgb和gbdt的优势,答了一大堆。
中间掉线好多次我说道xgb里面实现了rabit通信框架,可以支持MPI和yarn,他就问怎么通信怎么计算的。
我说支持通信框架只是可以用yarn来进行资源调度,并行计算写在框架里的,并行主要是选择特征分类,把特征分裂后排序之后并行选择。
他问我还有别的吗?我说不知道(有大神来告诉我么)算法题,有N个数字,从中随机选取M个。
我说先把前M个都选了,之后的N-M个,每次生成当前数字索引范围的随机数,比如遍历到第M+1的数,生成1 - M+1的随机数,如果小于等于M就跟前面响应索引的值交换,如果不是就抛弃。
面试官说不对,我说可能想不出来,让面试官提醒下。
面试官说第一次选中第一个,第二个选中的概率就是M-1/N-1。
我说那不能保证一定选中M个啊?面试官说所以还要改进啊。
我顺着面试官的思路说我写不出来了,面试官说让我回去想,说今天面试到这里了。
一面(不记得时间了..)1. 自我介绍+简单介绍一个项目(顺着问了一些相关问题)2. 代码:一个链表,奇数位升序,偶数位降序,将其转化成完全升序的链表(楼主说可以直接拆分+反转+归并,面试官表示可以之后就直接写代码了)3. 面试官表示自己不是做NLP的,让我随便介绍一个NLP领域近期比较不错的成果4. 面试官似乎觉得时间太早又不知道该问什么了,沉默了一会问TCP/IP懂吗?(楼主没学过网络,直接说不懂)epoll了解吗(楼主就光上课时候学过一点,感觉会被问死,就直接说不太了解)二面(不记得时间了..)1. 自我介绍+介绍项目2. 项目有什么创新点?3. 推荐系统里,向量检索有什么方法可以加速吗?(楼主答LSH,然后后续问题就都是LSH相关的了,崩...)4. 我们简化一下这个问题,用LSH的思想在二维平面里找出和一个点距离最近的k个点,并写一下伪代码(楼主的解法是简单地将平面划分成很多大格子,然后维持一个{grid_id -> list of points}的map)5. 这个解法里,如果一个点在一个格子的边缘,那召回效果会变差很多,怎么缓解这个问题?(楼主没有很好的思路..回答了几种,面试官都说也许可以,但都没有很满意)6. 还能想到什么其他的方法吗?楼主对LSH没有太深的了解,想了很久后说可以用聚类的方法,召回时先找到距离最近的cluster;面试官似乎还比较满意,说facebook有一篇相关的paper楼主可以自己去读一下7. 意向工作城市?三面(55min)1. 自我介绍+介绍项目2. 项目最大的创新点是什么?项目里有哪些工作虽然没有创新性,但耗费了你大量时间?3. 项目为什么要在word embedding基础上加character embedding?4. Dropout为什么能防止过拟合?5. Batch Normalization有什么好处?6. 讲讲Adam优化算法7. 开放性问题:怎么自动从广告语中提取出一个“卖点”?(eg. 保暖,时尚)8. 你有什么问题要问我吗?意向工作城市?头条一面+二面面经头皮发麻,头条面试强度是我目前面试到的最大的。
算法工程师面试题算法工程师是一项专业技术职位,负责开发、优化和实施各种算法和数据结构。
在算法工程师的面试过程中,经常会遇到各种各样的面试题,旨在考察面试者的算法和编程能力。
下面将介绍一些常见的算法工程师面试题。
一、递归与迭代递归与迭代是算法中重要的概念。
请你举一个具体的例子来说明递归和迭代的区别,并分析在什么情况下递归更适合使用,什么情况下迭代更适合使用。
二、时间复杂度与空间复杂度时间复杂度和空间复杂度是衡量算法效率的重要指标。
请你分别解释时间复杂度和空间复杂度,并给出一个具体的例子来说明它们的应用。
三、动态规划动态规划是解决一类优化问题的常用方法。
请你选择一个实际问题,并使用动态规划的思想来解决该问题。
详细说明问题的解决思路和算法流程。
四、图算法图算法是处理图结构的重要算法,用于解决诸如最短路径、最小生成树等问题。
请你选择一个具体的图算法,例如Dijkstra算法或Kruskal算法,并解释其原理和实现步骤。
五、排序算法排序是处理数据的常见操作,有多种不同的排序算法。
请你选择一个排序算法,例如快速排序或归并排序,并详细解释其原理和具体实现过程。
六、数据结构数据结构是算法的基础,对于算法工程师来说非常重要。
请你选择一个常见的数据结构,例如数组、链表或树,并解释其定义、操作和应用场景。
七、算法设计请你设计一个算法,解决以下问题:给定一个整数数组,找出数组中和为给定值的两个数,并返回这两个数的索引。
八、算法优化请你分析以下代码片段的时间复杂度,并给出优化的建议:```for i in range(n):for j in range(n):if i < j:// do something```以上是一些常见的算法工程师面试题,通过回答这些问题,可以有效评估面试者的算法和编程能力。
在准备面试时,建议多做练习,加强对算法和数据结构的理解和掌握。
祝您面试顺利!。
算法工程师面试题算法工程师面试题常见的要求包括算法设计和分析、数据结构、编程语言和系统设计等方面的知识。
本文将围绕着这些方面展开,从算法的基本概念、数据结构的实现、编程语言的应用以及系统设计的思路等进行探讨。
首先,我们来了解一下什么是算法。
简而言之,算法是解决特定问题的一系列有序步骤的集合。
在计算机科学中,算法是实现计算过程的一些指令,用于解决问题或完成特定任务。
算法既可以是具体实现的代码,也可以是抽象的描述。
算法的好坏可以从时间复杂度和空间复杂度来衡量,即算法执行所需的时间和内存资源消耗。
而数据结构则是组织和存储数据的一种方式,它是算法的基础。
常见的数据结构包括数组、链表、栈、队列、树、图等等。
算法工程师需要了解不同数据结构的特点、适用场景以及实现的方法。
例如,数组由相同类型的元素组成,可以通过下标快速访问,但插入和删除元素的效率较低;链表由节点组成,每个节点存储数据和指向下一个节点的指针,插入和删除元素的效率较高,但访问元素需要遍历整个链表。
对于算法工程师来说,熟练掌握各种数据结构的实现和操作是必不可少的。
另外,编程语言的应用也是算法工程师面试的重要内容之一。
常见的编程语言包括C、C++、Java、Python等。
不同的编程语言适用于不同的场景和用途。
对于算法工程师来说,熟练掌握至少一门编程语言,并能灵活运用,是进行算法设计和实现的基础。
掌握常用数据结构和算法的编程实现,并能进行性能优化和调试,是一个合格的算法工程师应该具备的能力。
最后,系统设计是算法工程师面试中的一个重要环节。
系统设计指的是在特定的场景下,设计相应的软件或系统架构,从而满足系统需求。
面试官可能会要求算法工程师设计一个大规模搜索引擎的架构,要求考虑并发性、负载均衡、数据库设计等因素。
在这个环节中,算法工程师需要综合运用自己的知识和经验,提供一个合理、高效的系统设计方案。
综上所述,算法工程师面试题涉及了算法设计和分析、数据结构、编程语言和系统设计等多个方面的知识。
阿里算法工程师面试题一、题目简述本文介绍了一道阿里算法工程师面试题,并对该题进行分析和解答。
二、问题描述请设计一个算法,对于给定的非负整数n,判断n是否为2的幂。
三、问题分析要判断一个数n是否为2的幂,可以通过判断n是否满足以下两个条件:1. n大于0;2. n的二进制表示中只有一位为1。
四、算法设计1. 首先判断输入的n是否大于0,若n小于等于0,则返回false,表示n不是2的幂;2. 若n大于0,则将会进入循环,判断n的二进制表示中1的个数是否为1;3. 在循环中,使用取模运算和整除运算,逐渐将n除以2,判断其余数是否为1;4. 若n的二进制表示中只有一个位置上的数为1,则返回true,表示n是2的幂;5. 若n的二进制表示中不止一个位置上的数为1,则返回false,表示n不是2的幂。
五、算法实现```pythondef is_power_of_two(n):if n <= 0:return Falsecount = 0while n != 0:if n % 2 == 1:count += 1n //= 2return count == 1```六、算法测试对于输入的非负整数n,调用is_power_of_two函数判断n是否为2的幂,并输出结果。
```pythonn = 16print(is_power_of_two(n)) # 输出 Truen = 10print(is_power_of_two(n)) # 输出 False```七、算法复杂度分析该算法的时间复杂度为O(logn),因为在运行过程中,n每次被除以2,直到n等于0为止。
八、总结本文介绍了一道阿里算法工程师面试题,即判断给定的非负整数n 是否为2的幂。
通过分析题目要求,设计了相应的算法,并给出了算法的实现代码。
最后进行了算法的测试和复杂度分析。
腾讯阿里巴巴面试知识随着科技的不断发展,互联网行业的竞争也日益激烈,腾讯和阿里巴巴作为两大互联网巨头,拥有众多优秀的技术人才。
在他们的面试中,除了对基本的编程能力和数据结构算法的考察外,还会涉及到一些特定的知识点。
本文将介绍一些常见的腾讯和阿里巴巴面试题目,以供大家参考。
1. 项目经验在面试过程中,腾讯和阿里巴巴都非常注重候选人的项目经验。
因此,在准备面试之前,你应该对自己参与过的项目有一个清晰的认识,并能够清楚地解释你在项目中的角色和所做的工作。
同时,你需要准备一些与你项目相关的技术问题,以便在面试过程中展示你的专业能力。
2. 数据结构与算法腾讯和阿里巴巴在面试中也会对数据结构和算法进行考察。
面试官可能会出一些基本的算法题目,如反转链表、二叉树的遍历等,以测试你对基本数据结构的理解和运用能力。
除此之外,他们还可能出一些高级的算法题目,如动态规划、图论等,以考察你解决复杂问题的能力。
3. 分布式系统腾讯和阿里巴巴都是互联网公司,因此对于分布式系统的了解也是面试的重点之一。
你需要了解分布式系统的基本原理和常用的分布式技术,如分布式缓存、分布式数据库、负载均衡等。
此外,你还需要了解分布式系统的一些常见问题,如一致性、容错性等,以便在面试中回答相关问题。
4. 网络协议在互联网行业,对网络协议的了解也是非常重要的。
腾讯和阿里巴巴在面试中可能会问到一些关于网络协议的问题,如HTTP、TCP/IP等。
你需要了解这些协议的基本原理、常用的状态码和报文格式等。
此外,你还需要了解一些网络安全相关的知识,如HTTPS、DDoS攻击等。
5. 数据库数据库是互联网公司经常使用的技术之一,腾讯和阿里巴巴在面试中也会考察候选人对数据库的了解。
你需要了解数据库的基本原理,如索引、事务等。
同时,你还需要掌握一种或多种数据库系统,如MySQL、Oracle等,并能够根据需求设计和优化数据库结构。
6. 操作系统操作系统是计算机科学的基础,腾讯和阿里巴巴在面试中也会考察候选人对操作系统的理解。
头条算法三面凉经(小透明首答,CV今年不是红海,是死海吧,现在笔试天天做的都要自闭了)0大厂Offer,无实习,有比赛top全是视频面,每一面都简历面+编程,还是很刺激的,分享一些难点和有趣的题型,题主末流985猹硕,做视频分类和目标检测的,真心想进抖音和小姐姐愉快的玩耍,BAT,TMD提前批除了头条,其他都高冷的不面我,百度最高冷了,上海视觉连笔试通知都没发我,真的不缺人呀,为啥本科还开设AI专业,缺口呢??我都劝师弟师妹转开发了,前天淘宝技术部hr问我会不会前端+OPENCV,我。
我也没点前端和Java这个技能啊一面BN原理dropout,随机选神经元输出0,下一次的时候,这些神经元权重是重新随机初始化,还是不变?编程1、n个数的前k大,快排partition,堆排都行2、two sum(升级版的three sum没考啊)二面问我rcnn到frcnn的进化路程,有什么区别和改进C++虚函数,纯虚函数区别?(???我不是投的开发呀,还好这个会。
)Adam原理1、已知rand3函数,希望生成一个rand7函数(有意思)2、求二叉树哪一个点到其他所有点的路径总和最小,树的重心三面(因为上次面试太晚,三面放在了下周)又是简历吹比,还不怎么提问(我感觉是凉了,就像找女票一样,对方对你完全不感兴趣,吹出花也没用呀)编程就一题abaaabbbaaab要求O(N)算法,求最长子串,包含相同数目的a和b字符15分钟写完动归(自以为已经很快)升级版abc三个字符咋办,还是on,思考了6分钟我说思路,延续前面思路,要按(ab,ac)的差值来哈希和查找,是不是On我还得思考下细节,然后估计后面排队同学还很多。
面试官说面试先到这里吧PS:原以为是三面稳经,hr过半小时说我三面挂了,面试官觉得我编程能力不行???题主ACM铜牌虽然不厉害,但前几面编程都答得出来,有本事别出原题啊,前两面都两道编程,但三面就一题,就说我编程能力不行,你说我简历差我也就接受了,真的是被打击到了,心态崩了呀,昨天可蓝瘦了,也不知道是不是HC不够,宇宙条是要招神仙么,是我菜,实力真不配,总有些题超出了守备范围,那您换一个呗。
阿里巴巴算法工程师四面(三轮技术+hr面)详细面经阿里面试总结:一遍一遍地刷阿里网站,今天发现“面试中”变成“待跟进offer”了,写个面经攒人品,希望offer通知邮件早点来吧。
我当时投简历时投了C/C++工程师,其实也没经过啥考虑,因为我一开始是把重点放在进网易游戏或者腾讯游戏部门,投阿里就纯粹出于增加点面试经验,随便找了个C/C++工程师岗位就找人内推了(后转为算法工程师)。
一面(3月16日):电话打来时手机显示北京电话,还以为是诈骗的(囧...)。
听声音,这位阿里面试官大概是三十多岁,有点资历的人吧。
一开始让我介绍项目,然后我就把简历上有关人脸重建的项目说了一通,但能感觉出来他不是很感兴趣(后来知道他是专门负责网络,搜索,云系统这一块的)。
然后他问我对网络了解么,我说基本的网络知识我是知道的,他就让我把OSI七层网络模型介绍一下。
这个我还hold得住,也说了个八九不离十。
接着他问我TCP的知识,问我为什么要有传输层和网络层,单有网络层不行吗?我就把TCP流量控制,拥塞控制,可靠传输等作用说了一下。
之后是问C/C++知识:重载,覆盖和隐藏的区别;指针和引用的区别;static作用;const作用;如何改变某个const实例中某个成员变量的值(我说可以用mutable修饰那个变量,他不满意,我说用const转型,他又问我这个转型本质是什么,我没答出来。
最后他告诉我是用const_cast把指针常量性去除)。
然后问了我几个算法题,都是老题了:如何在O(1)时间删除链表节点;两个相交链表如何找交点(我说了用栈保存每个链表节点的方法,他问有没有O(1)空间解法,一时没想到);如何找链表倒数第K个结点(联系这个题目,两链表找交点的题就可以在O(1)空间解决了)。
最后问我有没有什么想问的,我当时觉得这岗位和我的背景太不一样,反正没戏了,就随便问了一个:“C/C++这个岗位主要负责什么内容?”他说他负责云OS,需要用到很多网络知识,因此刚才也侧重网络向我提问,同时又他顺带问了我懂不懂网络加密算法,我说不懂。
腾讯、阿里、今日头条等互联网企业算法工程师的面试套路
伴随着人工智能浪潮的兴起,算法工程师在互联网企业中的地位越来越高,市面上的薪资平均水平相比于前端、后端等职业也有了显著的价格差。
很多人也许对算法工程师,尤其是机器学习算法工程师十分感兴趣,考虑着入坑或者转行。
那么问题来了,腾讯、阿里、百度、今日头条、美团、滴滴、网易游戏这些一二线的互联网公司中的算法工程师岗位的面试套路你都知道吗?今天小编就给大家总结下小编
眼中这些公司的面试套路。
---------------------------------------------------人工分割线
-------------------------------------------首先,企业为什么愿意出动辄几十万的年薪招聘算法工程师?1 算法工程师是智力密
集的岗位,不同的人水平差异很大,产出的差异也很大2 算法工程师供不应求,市场上供求比例大约在1:103 好的算法工程师流动性不大,高薪是吸引他们流动的必要前提那么像百度、阿里、腾讯、今日头条、美团、滴滴、网易、微软、谷歌这些一二线的互联网公司又是怎么通过面试来评估算
法工程师的工作能力、算法水平的呢?小编认为主要分为以下3点1 基本功是否扎实,算法和数据结构是否熟练掌握,是否足够聪明2 解决实际问题的能力是否足够强,能在有限资源、有限时间内利用各种模型、算法和工程知识解决好问
题3 对领域内的算法有深度的了解,对相关算法能举一反三,能够根据实际场景选择和创新算法算法工程师面试的内容
都是围绕着这三个方向来设置问题和环节的,所以有针对性的准备会让你在算法工程师的面试中更有优势。
那么具体的来说,这些方向是如何体现在问题上的呢??
-----------------------------------人工分割线
--------------------------------------------------1 基本功,包括基础
的算法和数据结构,是否扎实是算法工程师的前提我们经常可以看到一些老资格的程序员,因为做不出二叉树、链表的一些基础题而在面试环节被刷掉,然后在各种网站上吐槽。
最著名的一个案例就是homebrew的开发者max howell在
面试的时候写不出二叉树反转被google拒了。
问题在哪?
面试的一个重要环节就是考察你作为一个算法工程师的算
法和数据结构是否扎实,算法包括快排、二分查找等;而数据结构就包含链表、二叉树、队列栈等。
这同时考察了你
的基础、代码能力和聪明程度。
这一环节是绕不过去的,
所以无论你资格多老,只要是算法工程师的岗位,这些知识你还是老老实实的准备吧。
2 你对项目的了解程度,包括但不限于数据上下游、问题定位能力、算法的适用场景、项目的瓶颈和解决方案等等套用一句名言:以绝大多数算法工程师的工程能力之低,根本轮不到拼算法能力。
事实是,绝大多数算法工程师只看到了自己title上的算法两字,而忽略了
工程这更重要的title。
算法是个好东西,但是别忘了前面后面还有数据、问题定义、评估各种各样的问题。
所以面试的时候,也会出现各种哭笑不得的问题。
举几个应届生一般答不出来的问题1 xx算法性能太差,怎么办?答:加机器2 xx 算法准确率不够,怎么办?答:先洗数据,看看是否是污染的3 xx算法训练数据太少,怎么办?答:先用正则表达式产生一批训练数据,自己再标注一批是不是很简单粗暴?但很多时候算法工程师就是解决这些问题。
3 你对用到过得知识了解的深度,能否举一反三前面是讲工程,现在该讲算法了。
面试官会想知道,你究竟是否真的了解你做过的东西(比如Word2vec、RNN、CRF这些模型),还是你只是一个调包侠?
面试官往往会揪着你做过项目中的一个知识点,往深入问。
以下是我在面试中常遇到的问题GBDT能否并行?决策树有几种?word2vec怎么训练的?word2vec为什么用huffman编码?有没有替代方案?数据不平衡有什么解决方案?重采样对svm有效果吗?为什么?这些问题往往都比较深入,包含了应用场景、算法优化、算法底层知识、算法之间的关联性和对抗性等等。
先讲到这里,有机会我再和大家分享我的看法,欢迎大家关注我。