第08/50节 互联网校招-算法备战方法

大家好,我是涛哥,互联网大厂12年的老兵,某互联网大厂技术委员会委员,培养新人超百人。

求职路上任何问题,欢迎大家找我聊聊,帮助同学们事半功倍。

算法是计算机技术最重要的内容,有好的算法才能更好,更优的处理数据,得到更符合人类期望的结果。

算法是必考,可以考察这个学生的基础,智商,反应等。很多同学对算法题非常胆怯。但是经典的算法和面试笔试题都差不多,算法的基础方法和原理一定是很多计算机大拿沉淀下来的,面试中不大可能自己现场快速设计一套不存在的算法。

更多是基于基础算法的方法和原理横向扩展应用到特定问题上。建议从课本的基础知识复习,不需要都掌握,找重点,主要关注原理和应用。

常见的算法原理及内容需要专题复习:

  1. 排序算法:熟悉各种常见的排序算法(如冒泡排序、选择排序、插入排序、快速排序、归并排序等),了解它们的原理、时间复杂度和空间复杂度。
  2. 查找算法:掌握顺序查找、二分查找、哈希查找等常见的查找算法,了解它们的原理和性能。
  3. 图算法:熟悉图的遍历算法(如深度优先遍历、广度优先遍历等),掌握最短路径算法(如Dijkstra算法、Floyd算法等),了解最小生成树算法(如Kruskal算法、Prim算法等)。
  4. 动态规划:了解动态规划的基本概念,掌握动态规划的求解过程,能够解决一些经典的动态规划问题(如背包问题、最长公共子序列问题等)。
  5. 贪心算法:了解贪心算法的基本概念,能够解决一些经典的贪心问题(如霍夫曼编码、最小生成树等)。
  6. 分治算法:掌握分治算法的基本思想,能够解决一些经典的分治问题(如归并排序、快速排序等)。

注意:可以在网上找一些别人总结的算法常考题目,各个大公司的常考算法,数据结构等题目都总结的非常好,但是题目非常多,可以有重点的看,其他的泛看,这类题目很多都是发散思维,只要知道基本的流程,能讲出来过程和思路,写出伪代码即可。

我们面试考察更看重的是算法实现的思路和工程化的思路,算法学习的过程中也是对计算机处理问题思想的整理,时刻牢记大而化小,分而治之,并行化,动态规划思想,贪心思想。

举个例子,同学们体会其中的思想:

有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。

1) 先读懂题目每句话。翻译为类计算机语言。

2) 常规方法怎么做?分几个模块处理,存在哪些问题,哪个模块有优化的空间等等。

3) 分而治之/hash映射:顺序读文件中,对于每个词x,取hash(x)%5000,然后按照该值存到5000个小文件(记为x0,x1,...x4999)中。这样每个文件大概是200k左右。如果其中的有的文件超过了1M大小,还可以按照类似的方法继续往下分,直到分解得到的小文件的大小都不超过1M。

4) hash统计:对每个小文件,采用trie树/hash_map等统计每个文件中出现的词以及相应的频率。

5) 堆/归并排序:取出出现频率最大的100个词(可以用含100个结点的最小堆)后,再把100个词及相应的频率存入文件,这样又得到了5000个文件。最后就是把这5000个文件进行归并(类似于归并排序)的过程了。

同学们可以自己分析并实现此题目的过程。

欢迎关注我带给你求职过程持续帮助。有任何求职问题可以找我聊聊

#23届找工作求助阵地##24届软开秋招面试经验大赏##牛客在线求职答疑中心##晒一晒我的offer##如何判断面试是否凉了#
应届生校招求职干货宝典 文章被收录于专栏

本课程体系通过讲解整个互联网校招从基础技能,专业知识,项目经历,复习计划,软性实力、简历准备、笔试、面试、心理等13大方面做详细的方法论和干货经验指导。 涉及校招找工作前复习、找工作中的备战,易出问题解答、技巧及经验传授,更偏重于实战及快速提升,避免走过多弯路。 欢迎关注我的互联网校招求职攻略专栏,体系化互联网大厂求职宝典经验,很多干货哦

全部评论
涛哥你好,我是牛可乐,很高兴认识你!你的建议非常实用,我会认真阅读并尝试实践。请问你在互联网大厂工作12年,有没有遇到过什么有趣的事情可以分享一下呢?
点赞 回复 分享
发布于 2023-10-14 10:27 AI生成

相关推荐

今天 15:15
长安大学 Java
点赞 评论 收藏
分享
后来123321:别着急,我学院本大二,投了1100份,两个面试,其中一个还是我去线下招聘会投的简历,有时候这东西也得看运气
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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