如何刷leetcodee对去北美找工作面试真的帮助很大吗

刷leetcode对去北美找工作面试真的帮助很大吗?对面试国内的公司比如bat有没有帮助? - 知乎881被浏览72907分享邀请回答1添加评论分享收藏感谢收起与世界分享知识、经验和见解LeetCode练习-简单卷_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
LeetCode练习-简单卷
|0|0|文档简介
最大的在线IT笔试面试题库,涵盖阿里,百度...|
总评分0.0|
&&牛客网精心制作的LeetCode练习必备笔试面试资料,帮助应届生早日找到好工作
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢其实很多人学编程都会遇到困难,我觉得其中一个根本原因是他们没搞明白学编程到底是学什么。&br&&br&编程不是一种知识,而是一门手艺。&br&&br&我们从小到大的学习都是学习知识,流程一般是课前看书预习,上课听讲,下课做作业,然后复习考试。但是学手艺可不是这么学的。&br&&br&我们先拿游泳举例,游泳不是知识,而是技能,也可以算门手艺吧。&br&需要预习吗?需要上课听讲吗?不需要,因为两岁小孩都能学会游泳,他们连话都不太会说呢,怎么可能听课预习呢。游泳是通过在水里的练习,教练手把手地传授动作,一点一点提高熟练度学会的。&br&&br&我们再来看看弹琴,学钢琴一定要有钢琴,音乐基础知识也是老师在练琴间隙传授的,并且一定会结合练习,另外练琴时间是很重要的,必须保证一定的练习量,有些理想远大的琴童练琴时间可以用惨无人道丧心病狂来形容。&br&&br&千万别把编程看作知识,计算机科学是知识,但是编程是手艺。&br&既然是手艺就要用学手艺的思路去学习。&br&&br&以动手练习为主,看书学习为辅,甚至极端点,初学的时候除了看必要的文档都可以不看书,等有了一定编程基础后再去看书,看完书立刻动手编程去验证书上的理论知识。&br&练习一定要循序渐进,把手艺分解成几个简单的动作,反复练习直到熟练,然后再把基本动作组合起来练习直到熟练。拿C语言举例,比如从认真写好一个Hello world开始,然后去熟悉 if
for while 等基本关键字,然后熟悉字符串操作,内存操作,练习查找 排序 二叉树等基本算法数据结构,然后学习一个小型Framework。。。。&br&找个师傅,手艺的一大特点就是自学是很慢的,而且容易走弯路,而有人手把手教要快得多,手艺有很多细节,实际操作经验,需要去体会感受的东西,这些细节书上基本不会有。&br&坚持做大量的练习,以代码行数为例,每年50000行左右是比较一般的练习量,有毅力的话可以挑战10万行。(有人说代码行数不代表什么,行数多不见得程序就对,写得好的程序代码很少blablabla,滚,去跟朗朗说去,告诉他其实不用练那么长时间琴。)&br&&br&回忆下自己当年是怎么学会骑自行车,学会游泳,学会打篮球的,按照那个思路去学编程,而不是用你学大学课程的思路去学编程。&br&&br&记住,编程是手艺,不是知识。&br&&br&======&br&最后再强调下,对编程能力本质最好的比喻就是弹琴。但是有了编程能力还不能算优秀的程序员,优秀的程序员是作曲家,他们不仅能想出优美的旋律,并且能弹奏出来,就像优秀的程序员不仅能想出优美的算法架构,而且能把它变成可执行代码。你很难想像作曲的人不会任何乐器。&br&&br&很多人的问题是想当作曲家却不肯下功夫去练琴。&br&&br&打个预防针,估计有人会举出反例说我就知道某某某作曲家不会乐器(其实真的有)。&br&我要说的是,等你成了公认的著名作曲家之后再说自己不会乐器,那你牛逼。&br&在成名之前就这么说那是煞笔。
其实很多人学编程都会遇到困难,我觉得其中一个根本原因是他们没搞明白学编程到底是学什么。 编程不是一种知识,而是一门手艺。 我们从小到大的学习都是学习知识,流程一般是课前看书预习,上课听讲,下课做作业,然后复习考试。但是学手艺可不是这么学的。…
首先,做leetcode肯定是有帮助的。&br&&br&我今年四月面腾讯的时候,面试官就问了我一道leetcode上的原题,让我写一个数组右移k位的程序。&br&&br&然后我大学做了两年ACM吧,感觉leetcode上的题目基本都比ACM要简单一些,但leetcode有些题目涉及到空间复杂度的是ACM里很少考察的,比如说上面那道题,如果你空间复杂度是O(n)的一个刚学过C的都知道怎么做,但如果让你给个空间复杂度O(1)的解呢?&br&&br&leetcode我很久以前做完了,但是最近打算把以前写的代码在整理一遍,有兴趣的话可以看一下&a href=&///?target=https%3A///gzwl/leetcode& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&gzwl/leetcode · GitHub&i class=&icon-external&&&/i&&/a& ( ^_^ ),这里面我敢放上去的肯定都是最优解,打算一天整理十题左右,再过三周整理完。
首先,做leetcode肯定是有帮助的。 我今年四月面腾讯的时候,面试官就问了我一道leetcode上的原题,让我写一个数组右移k位的程序。 然后我大学做了两年ACM吧,感觉leetcode上的题目基本都比ACM要简单一些,但leetcode有些题目涉及到空间复杂度的是ACM里很少…
额~这个问题,我至少准备了半年。给题主点经验:&br&&br&首先,强烈建议采用“题海战术”。我当然不会告诉题主,今年面了数十家公司,90%的题目是原题(没办法,就那几个知识点,能有什么新题)&br&题库在哪里呢?按照循序渐进的原则,一一介绍:&br&1. cc150,全名cracking the coding interview - 150 Programming Questions and Solutions。经典中的经典,曾有人别的啥都不做,刷这本书三四遍,拿了Google的offer(注意是在美国,在中国就算了……)这本书的优势在于分章节,每章突出一块知识,题目精炼,答案好找;缺点呢,你写出的代码,需要深度检验,而cc150是书不是online judge,这个还是做不到。&br&2. leetcode。程序员刷面试题的第一网站,题多且全,少部分题目收费。刷的人很多,答案非常好找。online judge能深度检验代码的正确性,刷leetcode是最能锻炼算法题能力的。假如说时间有限只能刷一个,那必须是leetcode,假如时间够多……lintcode、meetqun等各大面试题OJ欢迎你,此外还有许多国内外大学的OJ。&br&----------------------------------------------------------------------------------------------------------------------------------------&br&以上是两大主力,但是光这两个,还不能到“题海”的水平,而且由于它们名气太响,有些公司有时会避开里面的题目……来,我们继续找题目。&br&3. 编程之美、剑指offer:就当成两本习题集好了,里面有些题目和1、2重复,但是大部分题目还是很优秀很巧妙的。&b&重点是交叉对比,你就知道哪些是经典题目了。&/b&&br&4. careercup、看准网等:每家公司都有自己喜欢出的题目,这些网站方便你去找面经,紧跟公司出题潮流。&br&5. “结构之法”博客:July大神的博客,内容丰富,学习一年都可以。这里只讲里面的算法题:“微软面试100题”(实际上已经快500题了)系列,堪称算法题的大宝库,包罗万象,而且很多题目很新,是面试官喜欢出的类型……不过这个系列的排版略微混乱,很多题也没有答案;“程序员编程艺术”系列,讲的很细致,适合深入去学习一些算法;“教你如何迅速秒杀掉:99%的海量数据处理面试题”,很实用的海量数据处理面试文章。&br&6. 经典库函数。这块单独拉出来,是因为考的很多,比如atoi,strstr,memcpy等等……在“程序员编程艺术”中,杂七杂八有相关的论述,最好自己系统整理一下。&br&------------------------------------------------------------------------------------------------------------------------------------------&br&&br&好,这些足够我们的题海了。下面来讲一下,哪些属于题海中的重点。&br&1. 最高优先级:面经。这个比什么都重要,为了节约招聘成本,同一家公司的题目,通常不会换的太勤快。&br&2. 次优先级:很经典的题目。什么定义为经典?前面我写了123456,假如某道题目能重复出现几次,那绝对是不朽经典(如atoi、LCS、LPS、单链表逆置……),经典的题目毕竟出的最多,一定要非常熟练。&br&3. 再次:稍微短一点(50行之内),稍微新一点的题目。&b&面试官通常时间有限,没时间让你写个上百行,所以50行左右是最好的。&/b&&br&4. 最末:答案很长的题目。这种题目一般不出,要是出出来,一般就是压轴大戏,为了最后检测……通常长题目容易乱,分模块慢慢写,不着急。&br&------------------------------------------------------------------------------------------------------------------------------------------&br&&br&光在IDE上敲是不够的,还要练习多在纸上写。&br&做多了,就会感觉这些题目都一样……无非dp、二分、排序、递归……无非开数组、调函数、用stl……然后题主就会悟出&b&算法题只是公司招聘没办法的选择,因为面fresh grad也没啥别的方法了,这个方法最简单粗暴高效。然而实际工作中,重要的还是项目能力。&/b&能悟出这个道理,题主就该修成正果了。
额~这个问题,我至少准备了半年。给题主点经验: 首先,强烈建议采用“题海战术”。我当然不会告诉题主,今年面了数十家公司,90%的题目是原题(没办法,就那几个知识点,能有什么新题) 题库在哪里呢?按照循序渐进的原则,一一介绍: 1. cc150,全名crack…
&p&leetcode蛮有用的,我当时刷了80%,感觉对所有面试题都能短时间给一个大概的答案。没在国内找过工作,所以不好说。&/p&&p&大家干这行的,如果想换工作,都会去刷题,因为面试能力和你平时的工作能力其实差别挺大的。你表示自己能熟悉各种machine learning,随意实现dbn,rbm,q-learning蒙特卡罗,可一段时间不刷题,一下碰上写个thread-safe circular linked-list还真一下反应不过来。。。&/p&&br&&p&我觉得题主提问是求面经,而且是问我们寻常人该怎么准备面试,也不是来看几位大牛吹水的。我就分享下自己找工作时候的一些准备过程。&/p&&ol&&li&认真看了一本算法书,整理了一下自己的算法体系,像算法导论,或者Algorithm Design by Jon Kleinberg 也挺不错的。花一周认真看看,如果你连几个search,tree都不熟的话还是多花点时间。。好处是你给自己建立了一个自洽的算法脉络,以后看面试题,或者处理其他一些现实问题,你都会不由自主的去把问题抽象化,然后归类,我自觉这种思考方式使我受益良多。&/li&&li&看一下Cracking the code interview.这本书大家应该都说烂了,但这本书长盛不衰必然也是有理由的。它的题量不多,书里废话也挺多。但它的好处是,它做了一个整理面试题然后归类的过程,而且基本把你可能遇到的所有面试题类型都覆盖了。&/li&&li&然后开始刷leetcode吧,从简到难,认真刷一遍。建议不要用任何ide,打开没有error check的text editor(emacs,vim, notepad++ etc) &/li&&li&最好在有几个可以吹水的领域。因为面试不是一个单纯做题的过程,对于我们平凡人而言,既然不能一直秒杀面试官,那就想得正常点,和面试官交个朋友。而做技术的,大多数都乐意结交那些知道一些自己所不懂领域的人。我记得我面的时候,还给人划过Android整个system stack,从dalvik画到kernel,还有人跟我聊在microkernel system design之类的。&/li&&li&保持一个积极的心态。我知道知乎有很些大神谈面经就是“我从来没被拒过“,但你要相信,这世界上还是平凡人居多的。我的朋友,包括我自己,在面试中都是一个越挫越勇的过程。像我一个朋友,他被google,twitter,apple,microsoft都拒过,但最后去了Facebook,还有一个朋友被google,square拒过,最后拒了amazon去了一家startup,现在已经被某大公司收购,走上高富帅之路。我被facebook,amazon拒过,google intern拒过一次,但microsoft就走的很顺,后来google很奇葩的把我面试时间schedule错了,我过了第一轮,签了MS就不再面了。所以无论遇到什么困难,都要保持乐观,你不是一个人,平凡人也有很多,要相信自己。&/li&&/ol&
leetcode蛮有用的,我当时刷了80%,感觉对所有面试题都能短时间给一个大概的答案。没在国内找过工作,所以不好说。大家干这行的,如果想换工作,都会去刷题,因为面试能力和你平时的工作能力其实差别挺大的。你表示自己能熟悉各种machine learning,随意实…
已有帐号?
无法登录?
社交帐号登录
953 人关注
122 条内容
7058 人关注
334 条内容
322 人关注
2495 人关注
499 条内容
1826 人关注
347 条内容&两年前,在实习生笔试的时候,笔试百度,对试卷上很多问题感到不知所云,毫无悬念的挂了
读研两年,今年代笔百度,发现算法题都见过,或者有思路,但一时之间居然都想不到很好的解法,而且很少手写思路,手写代码,有点仓皇失措;概念题却是很难答好,大多我都知道,但却难以描述清楚;最后一题大题,是设计分布式缓存系统,需要考虑负载均衡以及增删设备,我知识面比较窄,居然不知有一致性哈希,于是又跪了
说起来真是被百度虐了几遍了,除了百度的所有笔试题,我都能得到相对较高的分数,比如淘宝、腾讯、微策略等公司,可能题目风格比较克制我,不擅长回答这样几个简答+几个算法+一个系统设计的题。
痛定思痛,虽然我明年找工作,若以这样的状态和水平去笔试,面试,难以有什么好结果。
从笔试回来之后怒刷leetcode,约摸一个月有余,今天终于刷完142题(最后一题word ladder2是看答案copy的),纪念一下,并总结下这段时间狂刷题的感觉:
从做上面的题,我发现我更擅长一些数学技巧不高的程序题,习惯靠直觉立马书写代码,而非严格推理之后,再书写代码
对于链表的题比较擅长,链表可以在纸上画画,关键要考虑的问题,就是链表指针在运算中会改变,如何保存需要保存的链表指针值是难点,除了那题拷贝具有random指针的链表题,其他链表题我都比较快速的AC掉
对于树的题,常见的方法有:BFS和递归(可以看作是DFS),整体来说,难度也不大,其中递归应该是最常用的,递归的方法需要注意的就是边界判定;当然另一个问题,就是很多情况下,会被要求写非递归的解法,比如说树的遍历,或者知先序中序构建树,这些问题我得好好研究
对于求解题的BFS和DFS得到了比较大的锻炼,之前一直感觉模糊的掌握了DFS和BFS这两种搜索方法,事实上,直到现在才算是掌握的比较不错,对于leetcode上面的很多题,如果不限时的话,我都能以DFS搞定(起码能有20题以上),BFS往往在求解最先到达或者最短时间的时候用到,用起来感觉还不错
对于DP还是不算很熟悉,除了LCS,LIS还有编辑距离这样的经典DP题,其他我都很少往DP想,为什么我总觉得DP有点难理解呢?
关于DP和BFS,DFS求解的选择问题:一般来说,需要记录解(由哪些组成)优先选择BFS和DFS,它们在运算的时候能够很好的保存中间结果;对于DP,适合求解最终结果是怎么的情况,比如求值(最长公共子序列),或者判断是否存在(bool),DP如果要输出最优路径的话,是个比较麻烦的问题,一般还需要设置一个观测DP在选择表中如何移动的数组,关于DP我要好好训练下。
对STL熟悉了很多,用过很多之前都没用过的容器,几乎都用遍了吧:set,map,hash_set(unordered_set),hash_map(unordered_map),multimap,multiset(?好像这个我没用过),vector,string,pair,stack,queue等等,以及algorithm的函数,比如sort, unique,这些STL提供的,真是极大的方便了生活,以前经常得自己写一些基本数据结构,然而,自己写的再好哪有STL的好用啊!
对于在电脑面前写一些简单的算法程序应该是没很大问题了,但接下来的问题是:1,手写我要跪,虽然现在用vim,但我思路经常很跳,经常想起来就在前面插入,纸上可没这条件;2,一些基本的算法还不够熟练,比如快排,堆排,归并,KMP,等等,要立马写出一个bug free并且efficient&&elegant的代码是件不容易的时,我以后得专门在github上面建一个repo好好练习,自己写给自己看
leetcode上的大部分题都有不止一种解法,得好好看看其他人的解法,并且总结总结自己的解法
对做leetcode的总结大致如此了。
看了一些大公司的笔试面试题,尤其是笔试题,都特别广泛特别杂,要想在笔试拿高分,我还需要看很多很多书籍,一般数据结构题占试卷的分数也就30%的样子,如果其它题了解不够深的话,基本也难拿多高的分,所以一大波书在等待着我;另一方面,由于我是C/C++系,其实很多C++的高级机制都不知道,有些知道了由于不常用,后来也忘了,这个必须得好好总结。
时间不多了,得好好努力!!
阅读(...) 评论()拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(380cc62fe72543f5-ua98).
重新安装浏览器,或使用别的浏览器

我要回帖

更多关于 leetcode刷一遍找工作 的文章

 

随机推荐