欢迎访问有用文档网!

当前位置: 有用文档网 > 心得体会 >

笔试面试最爱考察算法

| 浏览次数:

 本文思维导图

 什么是算法

 上回我们有一篇文章,讲述了作为一个新人程序员,如何学习数据结构这门课程,其实呢,数据结构和算法是息息相关的,为什么这么说呢,因为数据结构本身只是一个载体,而在数据结构之上产生作用和输出价值的东西其实是算法。

 比如数据结构里的数组,看似非常简单的数据结构,却可以支持很多复杂的算法,比如动态规划,比如 DFS 和 BFS,再比如字符串算法、二叉树算法等等。那么算法到底是什么东西呢,不妨让我们来看看官方的介绍。

 根据百度百科的介绍,算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

 其实,算法的本质就是给你一组输入,运算之后给你一组输出,因此,算法帮人们解决很多问题把抽象的问题具体化,把一个问题转化成另外一个问题。

  认识算法的 N 个阶段

 我第一次遇到算法题,还是在我考研复习数据结构的时候,那个时候我看到的算法题其实都是很基础的题目,比如把数组中的两个元素置换,把两个链表合并成一个,但对于我来说已经是很有难度的事情了,那时候我连伪代码是什么都还不懂。

 第二次认识算法,还是在研究生期间找实习工作的时候,面试的时候总有一些关于算法知识的考察,这些算法题比之前自己学数据结构的时候要更难一些,比如要让你描述一下快排的过程,或者是二分查找的过程,由于是电话面试居多,一般都不会考察太复杂的问题。

 第三次认识算法,是在面试了头条这类对算法要求极高的公司之后。当时我对这类公司的算法面试难度还没有足够的认识,几乎没有准备什么算法题就去参加面试了,头条不像其他公司,绝不是问一些类似快排这样的简单算法题敷衍了事,而是会直接掏出一道 BFS 或者 DFS 让你做一做,而且经常不止是一道题。我只记得当时面试的时候,看了题目半个小时啥都没写出来,非常尴尬。

 第四次认识算法,是在参加了一些公司的笔试之后。和笔试算法题相比,面试算法题简直是小巫见大巫,好歹面试题考察的还是一些经典的算法,可能刷一

 刷剑指 offer 和 LeetCode 的简单或者中等题就能搞定了,但是笔试题就不一定的,出题人的思路千奇百怪,很多时候解法也很古怪。整体来看,通常笔试算法题的难度是最高的,特别是像字节跳动这种对算法有变态要求的公司,基本上算法题一道都写不上来。

 算法学习之路

 虽然我学习算法的道路一直不太顺利,但是想要进 BAT 大厂,算法不过关肯定是不行的。因此,我对于上面每个阶段的问题,都制定了一些对应的学习方案,让我应对每个阶段的算法问题。

 数据结构与算法

 数据结构这门课,其实很多时候就是我们的算法启蒙课,当初我是在考研的时候复习的,用的教材是《天勤数据结构》但是对于不考研的同学来说,我觉得还有很多不错的书可以参考,比如《大话数据结构》学好数据结构是学好算法的基础,至于怎么学习数据结构,比如回去看看咱们的上一篇文章,你就可以得知一二了。

 直接上剑指 offer

 有了数据结构的基础打底之后,至少你在看算法题的答案时,也能大概看懂了。但是,数据结构里的那些算法,很多时候是不够用的。当你了解到《剑指offer》里这本书的算法是笔试面试经常要考的内容,再去看看这本书里题目的难度,你就会发现事情并不简单。

 对于只有一点数据结构算法知识的同学来说,直接上剑指 offer 是有难度的,毕竟很多题目的解法你之前见都没见过,有的题目你看了答案也会很快忘记。

 其实,这本书里大部分的题目都不会用到什么特别复杂的算法,但是很多题型你可能确实是第一次见过,刷题这件事情没有捷径。这个时候你能做的就是多做题做看几遍书,真正做到能把题目自己写一遍,才能算是掌握了这本书里的算法。

 笔试题级别的算法怎么学

 既然已经看完了剑指 offer,是不是可以直接开始学习笔试题级别的算法了。且慢,我给你看一样宝贝。其实,剑指 offer 的那些算法,大部分都还是在数据

 结构算法的范畴之内,而在如今的笔试面试题库里,还有很多的经典算法,这些算法题就要到 LeetCode 里才能施展拳脚了。

 比如动态规划,深度优先、广度优先、回溯算法等等,这类算法题光靠自己想是想不出来的,因为这些题目的背后都是一些经典的算法和解题思路,你之前没见过的话,想破头也不可能想的出来。

 而这些算法,我之前也一直没找到合适的学习方式,总是东一榔头,西一棒子,看一些碎片化的文章来学习。直到后来我看到了基本还不错的算法书,比如《图解算法》以及《啊哈算法》把一些比较有难度的经典算法都做了介绍和讲解,当然了,现在还有很多的算法爱好者会做一些这类算法的分享,比如五分钟学算法的算法动画,程序员小灰的漫画算法,都是比较出色的例子。

 搞定 LeetCode 和真题

 最后一步,可能也是最关键的一步,就是要进入算法题库的最高殿堂,LeetCode 了,这个刷题网站想必很多同学都听说过,特别是有志于进入互联网大公司的同学,这个是必知必会的。

 LeetCode 的题库有非常多的题目,但我其实也只刷了 150 道题而已,当初我跟着一篇 LeetCode 刷题指南完成了刷题,详见:,当时我把很多常考类型的题目都刷了一遍。其实,LeetCode 的题目一般刷 2-3 遍是比较靠谱的,看到原题的时候要保证自己能做对。

 再说说历年的笔试真题吧,如今很多互联网公司的笔试面试都在牛客网上进行,因此这些题目一般也都会收入到牛客网的真题题库中,这个时候,我们就应该多去刷一刷这类题目,特鄙视你感兴趣公司的历年真题,最好都刷一遍,毕竟很多时候出题人也会偷懒去拿以前题目做修改,甚至直接照搬原题。

 而且,这些互联网公司的算法真题一般都出的很特别,多做一些,你才能掌握这类题目的规律,正如数学题一样,必须要多做多练,才能够在实战时也保持镇定。

 推荐资源

 算法类的学习资源可以说是非常多了,这里我只推荐一些我觉得还不错的资源,但是内容也不会少,够你们看很长一段时间的了。

 数据结构方面的资源可以参考这篇文章,这里主要推荐算法方面的学习资源。

  书籍

 《算法图解》《啊哈算法》《剑指 offer》不推荐《算法导论》即使盖方便面也有点重了

 视频

 《LeetCode 刷题班》《直通 bat 算法刷题课》小甲鱼的一些经典算法课程

 其他

 五分钟学算法的算法动画程序员小灰的漫画算法 LeetCode 或 LintCode

 总结

 关于算法的学习,今天就先讲到这里。其实我们所讨论了算法学习方法更多地是面向笔试面试的,讲究的务实和高效,帮助你快速地了解要学习哪些内容,以及按照怎样的一个步骤去学习。

 整体看来,先学好数据结构,然后用剑指 offer 强化练习,再去看一些算法书籍巩固基础,了解经典算法,最后上手 LeetCode 和真题,不断训练自己的解题能力,强化自己的算法能力,在考前一个月甚至几个月保持这样的状态和解题手感,会让你在实战时发挥更加出色。

推荐访问:笔试 算法 考察

热门排行Top Ranking

新时代青年的奋斗精神心得体会5篇

新时代青年的奋斗精神心得体会5篇新时代青年的奋斗精神心得体会篇1为进一步弘扬爱国奋斗奉献精神,激励党

XX乡镇防止返贫致贫监测和帮扶工作方案

XX乡镇防止返贫致贫监测和帮扶工作方案 为认真落实党的十九届四中全会关于“坚决打赢脱贫攻

坚持总体国家安全观心得体会250字8篇

坚持总体国家安全观心得体会250字8篇坚持总体国家安全观心得体会250字篇1“安而不忘危,存而不忘亡

宣传部部长心得体会15篇

宣传部部长心得体会15篇宣传部部长心得体会篇1首先,感谢领导给我这次评选优秀员工的机会,也感谢您能在

管理信息系统案例

第一章 信息系统与管理 案例((或实例) 得讨论题及点评((或回答)) [实例]利润计划工作中得反复

大学生体育课心得体会1500字5篇

大学生体育课心得体会1500字5篇大学生体育课心得体会1500字篇1不知不觉,进入大学第一个学期的体

餐饮单位疫情防控工作汇报

餐饮单位疫情防控工作汇报根据省、市、区疫情防控指挥部统一部署,严格落实《省市场监督管理局关于进一步加

党支部党建工作年度台账-基层党建工作台账

党支部党建工作年度台账::基层党建工作台账 党支部党建工作年度台账说明为抓好党建工作,根据《党章》《

党员的时代楷模心得体会12篇

党员的时代楷模心得体会12篇党员的时代楷模心得体会篇1@党员干部“打工攻略”请查收一年一度的“双十一

公文格式国家标准

公文格式国家标准 1范围 本标准规定了党政机关公文通用的纸张要求、排版和印制装订要求、公文格式各要素

内勤辅警先进事迹材料

内勤辅警先进事迹材料3篇 内勤辅警先进事迹材料1 办公室工作室一项既辛苦、又清苦的脑力劳动,他没有惊

傅雷家书阅读心得及感悟10篇

傅雷家书阅读心得及感悟10篇傅雷家书阅读心得及感悟篇1一连几天,我都沉浸在《傅雷家书》这本书中,感受