我一直觉得算法工程师,两把刷子,过硬的算法基础知识,可靠的代码工程能力即可;
最近和一些老朋友交流了一下,发现理想很丰满,现实很残酷,在自己觉得自己会了点机器学习知识的时候,结果连和别人沟通讲自己会的东西的机会都没有,还没开始就被卡死在了数据结构这一关上;能想到的,只有时间或者空间复杂度最差的那种解法。一言不合就是遍历,不行就o(n**2),真的是弱鸡的不行
所以我觉得,是时候把大学做的leetcode捡起来再做一做了,其实在很早的时候,我就在GitHub分享过一些我遇到过的数据结构的问题,但是当时可能觉得不重要,更新了一段时间之后就停止了,现在仔细想想真的是有所失误,好在一切还不晚。
关于刷leetcode这事,你可以往三个方向上走。一是按照从easy到medium到hard的方向。二是按照分类走,比如先刷树相关的,再刷数组相关的,依次类推。最后一种是我用的就是完全随机的取刷;我觉得自己疯狂刷完dp问题,过了两周又忘完了这样就是非常蠢的,做着做着来一题强化一下记忆,这样才会记得更清楚。
在语言选择上,Python的小trick还是有点多的,就比如字符串表达式的值,我们用eval函数就可以得到,但是请不要这么去用,这样非常的投机取巧,在真的需要去讲去面试的时候,绝对不可能让你这么去用的;如果忍不住,就用java或者C。
除了在Leetcode上面刷题外,有两本书可以给大家参考,一是《剑指offer》,二是《算法导论》,大家可以自行选择。
最后贴上我现在做题及做题心得的GitHub地址,如果有比较困难理解的地方,我都在代码里面注释了,希望能帮到大家,就这样了。补充一点,在README里面我在有些题目下面注释了一些心得,建议可以优先把这些题目看下,我觉得还是很有意思的。
欢迎大家关注我的个人bolg,知乎,更多代码内容欢迎follow我的个人Github,如果有任何算法、代码、转行疑问都欢迎通过邮箱发消息给我。
网友评论