互联网大厂刷题攻略

您所在的位置:网站首页 五大推荐系统算法有哪些 互联网大厂刷题攻略

互联网大厂刷题攻略

2023-06-13 17:44| 来源: 网络整理| 查看: 265

1. 本文目的

本文面向电子信息/互联网行业中诸如后端算法等岗位的找工作小白:从0开始,如何刷算法题?

剑指offer作为系统刷题的入门还是很合适的,后续还会针对进阶的刷题写相应的专栏。

2. 刷题地址 2.1 Leetcode

Leetcode官方指定剑指offer刷题网址 Leetcode的剑指对应的是官方最新的第二版,题量也比牛客的多,适合作为刷题首选。

2.2 牛客网nowcoder

牛客网剑指offer刷题网址 牛客网的题库没有更新,不过没有大碍,适合复习时候换个编程环境刷题,而且很多网上面试都是在牛客网上,可以在这里多练习适应网面的编程环境。

3.准备工作

对于需要刷剑指offer的同学来说,往往还处于实战入门的阶段,可能有一定的理论基础,但是又不像竞赛大佬那样阅题无数,手到擒来。所以,刷剑指offer过程中要把建立自己的”阅题“体系放在首位,不要计较一道题是否AC(通过),多总结,多重复,多思考才是王道。主要的准备工作主要有两点:

1、一门编程语言,C++,Java,Python,Go,JavaScript等等都可以。这里需要注意两点,一是尽量选择自己平时开发所用的主力语言,二是一旦确定尽量不要更换。算法学习重在理解算法实现的思路,理论上任何计算机语言都可以作为算法的实现语言。但是针对我们找工作面对的笔试面试算法题而言,选你应聘那个岗位所需的主力语言自然是最佳。

2、必备的数据结构基础和算法知识。这方面的学习资料有如下推荐的:

(1)视频课程

C++向: 国内清华邓俊辉老师在学堂在线上的课,分基础和高级,课程链接戳这里:数据结构基础,数据结构高级。课程采用动画示例,讲解干净利落,配套有教材(可以评论留言索取电子版),还有OJ习题供课后练习,而且已经形成学习社区,万人验证,不怕有坑。课程主页戳这里:课程主页。

Java向: 我推荐慕课网上一门口碑课玩转算法系列–玩转数据结构 更适合0算法基础入门到进阶(java版) 这位老师的其他进阶课也相当棒。

Python向: Python没有多关注,不过B站上有很多资源,可以搜索一下看看评论。万门大学上有一门数据结构与算法进阶班的课讲得可以,有需要的同学可以去搜索看一下。

(2)专栏资料 提到专栏,这是最近几年火起来的付费服务的一种形式。在数据结构与算法领域最火的应该要数GeekTime上的数据结构与算法之美了吧。我也学习过该专栏,不评价价格,内容确实不错,相比于书本,更贴近实战,而且有动图演示过程,更抽象具体。不过课程也有不足地方,有些内容,比如KMP算法个人感觉讲得不够好,不得不承认,很多时候文字的表现力确实没有视频+语音+演示来的透彻。

(3)书籍资料 首推 “数据结构与算法分析” Mark Allen Weiss,这本书有C语言,C++,Python描述。java选手还可以选择"算法"第四版。——至于"算法导论",适合大佬选手和有相当多时间的同学一点点啃。我也建议可以作为刷题选手进阶必读书籍。当然,对于实在零基础的同学也可以选择"啊哈!算法","算法图解"这类入门级书籍阅读。

4. 如何刷题

对于有面试笔试刷题需要的同学来说,个人建议前边的准备工作加速完成,毕竟实践出真知,在准备基础中建立一个认识和熟悉的框架,接下来就是刷题来巩固并且提高速度。关于刷题,我以leetcode刷题为例来讲讲自己的经验:

刷题六步法 对于一道题来说我们可以按照以下的步骤来做:

第一步

先读清题目,知道输入是什么输出是什么,最好按照给出的样例,把这个过程在脑中或者纸上模拟一遍;

第二步

对于初学者来说,八成不会做,没思路,之前学的什么递归啊,堆栈啊,队列啊,DFS/BFS啊,这都哪儿跟哪儿啊?挨不着边儿!别急,先用最笨的暴力方法做,就是i,j,k多层循环嵌套不停for啊,大不了我多遍历几遍,这个时候就不要考虑复杂度这种高级的问题了。能跑通一些样例就不错,这个过程呢,也别头铁一直耗着,十分钟还搞不出来就进行下一步;

第三步

leetcode最宝贵的是有题解,这里先不讨论国际版,就说中文版,直接看题解,就是最好的学习,别信网上百度的答案,最好的就是题解!题解!题解!一般都会有官方题解,做的还很优秀。官方的看完有点不过瘾就找找下边一些大牛写的,往往有很多精彩的答案,但是最后先选择一个你觉得最合适的,时间空间复杂的好的,要么照着写要么用你自己的语言实现。先跑通AC了;

第四步

你以为AC就完事儿了,并不是,把之前写的代码恢复原模版,自己不看题解再重新写一遍,不要照抄强背,要理解着写,其中用到的变量名不要求与前一遍一样,但是要按照正确的思路一遍遍实现。

第五步

第二遍AC了以后,就可以试着自己写题解,把自己的思考过程写下来,加强记忆,效果更好,也方便复习。

第六步

最后一步就是多次练习,个人建议,每晚结束学习之前,把当天刷过的题目翻出来,恢复模板,再写一遍。然后每周末,把这一周的重点题目,AC失败次数多的题目再写一遍。一道题要反复练习,才可以达到掌握的程度。

5. 刷哪些题

在这里推荐的刷题顺序有两个:

1、分类分专题刷

leetcode和牛客网上对题目都做了分类的划分,可以先把各个分类下的简单题过一遍,再刷中等题,详细的刷题步骤,我日后再补充。

2、剑指offer ——》leetcode Hot100 或者牛客网上的 程序员代码面试指南 那个题库

然后就可以在leetcode或牛客网上以公司为分类按需刷题,这个的好处就是可以不断训练构建出一个系统的知识体系。但是在初期会因为基础不扎实,造成刷题慢的问题。不过最重要的是要坚持嘛。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3