说起算法,许多程序员都会一顿哀嚎,为啥面试要靠算法这个东西。不过这个不是咱们讨论的重点。(我们无法改变这种现状,那就改变自己)
今天,我们一起来聊一下,程序员面试的时候该如何准备算法。
第一:多做算法题,熟能生巧
算法题没有捷径,一定要多做,熟能生巧。不过,刷算法题目也是有技巧的。
如果算法基础不好的,很久没有做算法题了。第一次做算法题目,99% 的人看到题目都是懵逼的。完全无从下手。这时候怎么办呢?
不要纠结,直接去看解题思路,尝试去理解他。第一次看不懂没关系,多看几次,至少看懂了 50% 再继续刷下一道算法题目。
去哪里算算法题目呢
刷算法题目的话,网站首选 leetcode,牛客。如果你是大学生的话,可以选择《剑指 offer》这本书,也是比较经典的。
每天刷多少道算法题目合适呢?
个人的建议是每天刷 10 道算法题目。当然,可以根据当时的状态适当调整。状态好的话,就多刷几道。不好的话,就少刷几道。
最重要的事要坚持每天做算法题。想一下,坚持做题 3 个星期,你可以刷将近 200 道题目。剩下的一个星期,再拿来巩固练习。
个人的建议是每三天,回顾前面几天做过的算法题。看到题目的时候,脑海中第一时间就复现思路。
第二:收集自己的错题集
收集自己的错题集,这个太 TM 的重要了。
学生时代,我们在学习,复习的时候,也会收集自己的错题集。它能够帮助我们快速发现自己的弱项,我们可以针对这个,查漏补缺。
想一下,如果我们能够拿出学生时代的干劲,这小小的算法题,还难得倒我们嘛。
不要怕算法,要从心里藐视它,战胜它,对自己有信心。
第三:按照自己的理解,分类整理高频算法题目
其实,我们面试常见的算法题,大多数都是经常出现的。当然,如果运气不好,碰上一些面试官,搞一些刁专古怪的题目,只能说,你运气不好。
我们可以根据这些高频的算法题目,分类整理
- 排序
- 常见算法,递归,DFS
- 数组
- 链表
- 二叉树
- 动态规划
在每次要面试的时候,分类去做算法题目,你会发现,坐着坐着,你会越来越有剃感。
看到类似的题目,你的脑海里会不自觉地浮现常见的解题思路。
小结
算法,说到底,这个东西说难也不难,重要的事要花时间去熟悉,琢磨它。当我们养成了自己的一套解题体系,复习起来,你会发现事半功倍。
推荐阅读
高考十年了,聊聊挣钱这件事
大厂被裁,我也曾迷茫过
我的 5 年 Android 学习之路,那些年一起踩过的坑
程序员如何写好自己的简历,一位 5 年中大厂老哥跟你聊聊