Leetcode 刷 200 多道题了,经验与迷茫

2018-10-13 00:09:37 +08:00
 langhunws

https://github.com/geemaple/algorithm

记录是激励自己的好方式,留下自己的 Repo,与君共勉,要找工作了,求个好运吧🍀,2018-10-13


我是一个 iOS 程序员, 非 top 名校,侥幸 211,985 都有。毕业季 objective-c 和 python 是一起学的,只因当时 iOS 太火爆,走上了这条不归路

2017 年 10 月份左右的时候,看了《剑指 Offer 》,只刷了 50 道左右题目。那时候也没什么章法,先按简单的来,30 几道之后就刷不动了。简单的问题都搞不定,自信心被打击的不行,扔了半年。

这时,我只是对几种常见排序,入门级别的动态规划有了解。但底子仍为 0,连时间复杂度也弄不明白。老实说,我就是曾经那些 diss 算法根本用不上的中的一员。

出来混,迟早都要还的,想要去硅谷的执念仍在,2018 年过年回来陆续开始按照标签来刷,二分查找,双指针,分治,递归,广度优先,深度优先,动态规划。

如果是 Google 和脸叔的题,基本上直接认怂。很多题自己只能有一部分思路,然后就是无解,好多答案都是想不出来研究别人的,甚至好多看解释半天都理解不了,有时还要去翻相关概念,经常把答案 copy 到 IDE 里面一点点调试,和自己写的对比。有时就差一个字符,结果千差万别。

这半年几乎把时间都用在了刷题上,除了心情状态不佳,工作,或有点拖延症外几乎都在刷题,在公司,在家,在亲戚家,高铁动车,卧铺,参加婚礼空闲的时候都在找地方刷题

我把题号记在 Anki 里面,像单词一样去重复的刷做过题。欠了 125 多个题还没有及时重刷,该加把劲了~

自己这半年是有成长的,有大神说无论状态怎样都要刷题,像运动员锻炼一样,因为一旦放下,可能就会放下好久。

35658 次点击
所在节点    LeetCode
80 条回复
yang2yang
2018-10-13 10:46:31 +08:00
怎么才能去硅谷工作?
shiina
2018-10-13 10:51:56 +08:00
前段时间也做了 200 多个题,能力有点提高,但是已经感觉到了自己的的能力上限。
ffffish
2018-10-13 10:55:01 +08:00
送你一句共勉 刷题不一定能找到工作 不刷题一定找不到工作 (大牛除外
songtianyi
2018-10-13 11:23:33 +08:00
"因为一旦放下,可能就会放下好久" 曾经的 acmer 很赞同这句话。算法这东西,捡起来真的困难, 一个是没那么多时间了,一个是思维跟不上了。
beny2mor
2018-10-13 11:39:18 +08:00
问不对题,你的迷茫提现在哪里......

曾经刷了段时间,真的一放下就不想去捡了
Desiree
2018-10-13 11:40:17 +08:00
加油,我也在刷,速度可能还没你那么快,不过坚持下来才是刷题最难的,因为算法的思维才是刷题的核心,如果你有一天将量到一定程度,可能就会看到更广阔的世界吧。
Windsooon
2018-10-13 12:01:49 +08:00
如果楼主刷了 200 多题还迷茫的话,那刷题的方法一定出错了,要知道以前的 Leetcode 一共也只有 200 多题。我觉得更好的方法是刷完一题之后好好总结为什么一开始没有做出来。例如 G 家常出的 Word Break,可以用 DFS, BFS, DP 来解。真正能用几种方法解出这道题需要很多时间训练以及基础知识的积累。而且一般这些原题都有 follow up,不真正理解是解决不了的。如果要去国外工作的话,我建议可以看看一亩三分地的面经。在 Pramp 上 mock interview 试试。
likuku
2018-10-13 12:05:48 +08:00
@ffffish [不刷题一定找不到工作] ... 这太绝对化了吧
ffffish
2018-10-13 13:17:59 +08:00
@likuku #28 trust me 当然也有例外 即使大牛也需要准备 因为面试都是技巧
AntiGameZ
2018-10-13 13:25:37 +08:00
半年时间,200 题,应该反复刷了不止一遍吧?这个时候应该会有瓶颈期了,能自己突破当然好。突破不了的话,还是买本 Algorithm 4th 之类的书,从头梳理一遍思路吧。

现在只是把题目做出来已经不够,还得琢磨一题多解,熟悉各种套路。

对于非算法爱好者,而又得在硅谷混的人来说,刷题,真是一个慢性病……
mathzhaoliang
2018-10-13 13:47:05 +08:00
我有点不太明白,要去大公司的话,拿着自己写过的牛逼项目去不是更好吗?要不就自己创业,干嘛挤破头去硅谷呢?
难道你希望等你 N 年以后咽气了,别人在你的墓志铭上写:"这人刷了一万道 leetcode,拿了硅谷几十个 offer,可是一个牛逼的项目都没有" ?
最好是现在想清楚自己的方向,朝这个方向走,好过漫无目的的刷题。
likuku
2018-10-13 14:04:52 +08:00
@ffffish 只要不去一线大厂,需要杠算法科学的不多见了
UIXX
2018-10-13 14:10:50 +08:00
哎,我深深感觉到一些面经害人不浅。潜移默化地告诉想去大公司的人刷题等于面试成功。(事实上这些人不一定是因为自己的 coding 能力被录取了,你永远不知道他们都有哪些隐性优势)
我暂同 @mathzhaoliang 的部分观点,有方向、有项目就是最好的起步,算法只能算内功,没有招式也使不出劲。很多算法复杂,你没接触过实际应用单纯做题纯粹像是背八股文那样索然无味,时间一长也就忘了。

除非你要参加比赛,那是必须要刷题的。如果你已经有了工作,在实际项目上努力更加节省时间。
melonrice
2018-10-13 14:29:02 +08:00
额,2017 年 iOS 火爆?
paw
2018-10-13 15:27:05 +08:00
刚负责某厂的校招 1 面,讲真,在面的那些人中,号称刷题过千 /acm 的,基本都直接给挂了,给过的也在后面 2/3 挂掉了,有个好像是 acm 全国二等奖一面也没给过。你 acm 再牛逼,问一个 c++虚函数相关问题,居然有反问虚函数是啥的;不按 acm 套路出算法题,给一个实际产品场景让设计效率尽可能高的数据结构,就挠头了,没一点抽象能力。招进来干啥?

招人是开发项目的,不是让你多能解奇葩算法题的,而是看你的综合基础知识;解决实际工程 /产品问题的能力等。

既然 lz 现在已经入坑 ios 开发了,就往 ios 深处挖一下,了解底层机制 /优化 /网络等和一些常见的开发模型以及为啥这样好等,这些在求职中还是很有用处的。保持一种往下挖一层的好奇心还是很有用的,知其然知其所以然。

还有 lz 再面应该也算是社招了,实际项目经验也是很重要的一点了。

刷题,自我安慰罢了,除非是那种以此为乐的。如果是带着功利心去刷,别浪费时间了。
ffffish
2018-10-13 16:19:34 +08:00
@likuku #32 可是还是想去大厂 /狗头
wcgwuxinwei
2018-10-13 18:33:50 +08:00
@paw
老哥说到点子上了,+10086
daredevilll
2018-10-13 18:35:01 +08:00
扔个链接: https://github.com/Kexin-Li/LintCode

刷一百多道了,和楼主一样的思路,分类别刷题,感觉这样算法知识会变得系统很多。

前路漫漫,向楼主学习。
justyy
2018-10-13 18:46:08 +08:00
@paw 对,ACM 只是加分, 还是看综合实力,看你做过什么项目啥的。 我一般喜欢问 C++的 virtual destructor 有啥用 (可以刷掉很多人)。
guanghe123
2018-10-13 19:29:16 +08:00
@justyy 大佬是在国内 rou 翻的吗,方便介绍下拿到 offer 的方法吗~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/497226

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX