如何准备面试中算法问题

Table of Contents

 

一点都没有基础怎么办

推荐看严蔚敏的数据结构

不建议看算法导论

如何准备面试中的算法问题

如何使用OJ (在线判题系统)

如何刷题

总结


一点都没有基础怎么办

推荐看严蔚敏的数据结构

有的同学说了,我自己一点基础都没有,该如何入门,这里推荐两本书来夯实基础,第一本就是:严蔚敏的数据结构

这本书把 线性表,栈和队列,串,数组,树,图等等数据结构做了很好的解释,而且也介绍了相关算法,可以巩固基础知识。起到很好的扫盲作用。

 

不建议看算法导论

这本书要不要看呢,我建议初学者不要看这本书了,算法导论毋庸置疑的算法经典书籍,里面囊括了计算机算法的精髓。 同时正式因为经典书籍都是大而全,所以会让想准备算法面试的面试的同学会抓不住重点。而且里面的代码都是伪代码而且描述的非常晦涩难懂,这会对初学者造成的很大的疑惑。

例如这里是 算法导论对 广度优先搜索的介绍,这里介绍的广度优先搜索简单来说就是给定一个点,然后向点的四面八方扩展,直到找到目标点,然后画出最短路径。

相信如果基础不好的同学,看到书上这个描述会直接怀疑人生, 但是我还是建议如果时间充足的话算法导论还是值得好好看一看。 如果仅仅是为了面试的话,可以先不用看这本书

 

如何准备面试中的算法问题

补充完基础知识,如何快速达到可以面试通过的算法水平呢,可能准备面试的时间只有三个月,甚至还不能全心放在准备面试上,那么我给出的建议就是 做题为主,看书为辅,总结才是王道。这里我们要以做题为主线,不会的知识点可以看书查一下,然后就是多记录多总结 

这里说到了做题,就不得不提OJ,全程为online judge

也就是在线判题系统,我们可以在浏览器端提交代码,然后 系统会把代码发送到服务器去运行,跑服务器上的测试集,返回运行结果,我们就可以知道代码运行的是否正确。 这是算法实战很有效的方式

 

如何使用OJ (在线判题系统)

介绍一下一个比较出名的OJ

POJ : http://poj.org/ 

HDUOJ(杭州电子科技大学):http://acm.hdu.edu.cn/

leetcode(国际版):https://leetcode.com/

leetcode(国内版)https://leetcode-cn.com/

前两个OJ 主要是ACM竞赛必备的OJ, leetcode 更合适准备算法面试的同学来练习算法, 至于使用国内版还是国际版呢? 其实都可以, 题目都是一样的,leetcode也是最近才推出国内版本。

LeetCode按难易程度分成了:简单,中等和困难三个级别。

简单 级别一般并不需要太多思考就可以想到算法,甚至可以通过很暴力的方式直接过题,特别适合新手去熟悉编程语言。

中等 级别就会有些难度,一般都会涉及到经典的算法,需要一定的思考。

困难 级别是最难的,有些时候是算法本身的难度,有些时候特别需要你考虑到各种细节。

而且leetcode帮我们把题目都分类好了,这里已经覆盖了 算法面试所有类型的算法题目

进入每个题目,除了题目描述,还有讨论区,可以看到大家对这道题的讨论,许多人都把自己的代码放到了上面,就像BBS一样,你可以发贴提问,也可以回复别人。 通常可以发现很多新奇的解法。 也可上 leetcode国际版 的discuss上看看外国程序员如何讨论这道题目,也可以拓展自己的思路。

当然首页还有很多专栏,竞赛,面试等等,有些功能就需要付费了,初学者建议不用付费,免费的内容完全够用。

 

如何刷题

简单总结如下几点:

1. 针对性训练:之前我有列出一个算法知识图谱,需要知道自己缺哪里 然后补哪里

2. 不断总结:做了每一个道题就要总结,而不是做过了就过去了,那样很快会忘掉

3. 持续输出:每一道题或者几道同类型的题目,就要有自己的思考然后输出一篇博客

 

总结

最后总结一下 如果准备算法面试问题

补充基础:看严蔚敏的数据结构 

前期准备:做题为主,看书为辅,多写博客多总结 

面试前: 看总结,捋思路

后面我会单独写一篇详细讲一下如何刷leetcode

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码随想录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值