78

零基础转码刷题,谈谈我的经验感悟(已拿字节offer)

 2 years ago
source link: https://zhuanlan.zhihu.com/p/413079395
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

零基础转码刷题,谈谈我的经验感悟(已拿字节offer)

FLAG资深工程师,美帝代码搬运工,公众号:九章算法

首先说说我的情况,给正在犹豫要不要刷题转码的朋友提供一些不一样的视角。

本科末流985的数学专业,四年都是纯数方向,接触到的唯一可能和编程相关的是matlab,到了找工时节开始决定转码,最开始自己摸索着刷题的感觉be like↓

v2-258cc7bd56c0250e723072dc96355512_720w.jpg

第1个月:学完DFS,做DFS不会;学完递归,做递归不会;学完DP,做DP不会;学完贪心,做贪心不会……

看书马冬梅,合上书就是马什么梅了,那段时间感觉智商快不够用了,就算理清了算法逻辑,看到题目还是要想上半个小时。

再后来,同校的师兄指点我“不要为了刷题而刷题,先去把算法与数据结构的基础系统的学一遍。”

期间我也踩了不少坑,有些书是买回来就搁置了的,还有些视频/网课听得我云里雾里,所幸,我慢慢摸到了门路,我总结了几个对提高数据结构和算法有用的网站/书籍:

大话数据结构:以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。这本书的优点在于非常浅显易懂,内容趣味易读,但是算法的讲解十分细致,如果基础薄弱/0基础,很适合。

CodeGym :一个在线Java编程课程,80%的内容是练习,适合一窍不通的入门者,刷LC之前可以用它过度一下。

③Coursera:Princeton University的算法系列课程,免费注册,适合掌握至少一门编程语言的初学者。

这一阶段下来,我对算法与数据结构有了个比较系统的了解,夯实了基础知识后,就可以开始刷题了,这时候刷题不至于会“怀疑智商”。

而靠刷题上岸这件事,我认为运气能占70%,实力只占30%:

大厂题库动辄上百道,仅仅刷完BATJ,FALG这样的大厂题库可能都要三四个月时间。

所以就需要掌握技巧——按照TAG来刷题,只刷最新面经题。那段时间翻看面经我发现大厂最多会考察近六个月的算法题,再旧的题目就没有任何刷的意义了。

这里也推荐一下Lintcode的企业题库,刷题期间发现的宝藏网站。

题目更新很及时,而且国内企业国外企业都有整理,按照时间筛选刷最新的题,面试中基本都能碰到两三道,运气好甚至全是原题。

最后,我整理了一些算法和数据结构的高频考题,大家可以刷刷看:

字符串:

寻找字母

出勤判断

三等分

独特字符串

查找和替换模式

二分法:

硬币摆放

查找最大因子

地图跳跃

山形数组的顶峰坐标

拆分子数组

BFS:

超级迷宫

最小高度树

最短的桥

坐缆车

湖面逃跑

DFS:

绘制填充

停在原地的方案数

喧闹和富有

旅行计划

连接词

动态规划:

最长上升连续子序列

推多米诺

单词拆分

供应场

书籍复印

哈希表:

最长回文串

找到映射序列

重排字符串k距分隔

森林中的兔子

基础计算器

递归:

二叉树的后序遍历

列表扁平化

用递归打印数字

字符串解码

最大子串

最后,刷题也不是一朝一夕的事情,需要有计划有目的的执行,我从决定转码到上岸字节也用了半年之久,题目少说也刷了500+,面试中基本都能做到bug free。

天道酬勤,希望大家也能坚持刷题,早日上岸!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK