前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >刷 LeetCode 那点事 !

刷 LeetCode 那点事 !

作者头像
小小詹同学
发布2018-12-11 10:26:25
9050
发布2018-12-11 10:26:25
举报
文章被收录于专栏:小詹同学小詹同学

有一段时间没有更新 LeetCode 打卡帖了 ,其实自己有偶尔刷题 ,但是没有写成文章记录分享出来 ,主要还是自己懈怠了 ,另一个重要原因就是写这记录帖比较费事却没多少人看 。最近想了想 ,关于刷题做了一些浅显的思考 。

首先 ,为什么刷题呢 ?当然是想着提高自身能力 ,在算法笔试面试中脱颖而出 。那么问题就来了 ,算法面试他面的只是一个具体的题目吗 ?

很显然不全是的 ,相信有人在面试中几乎做出了所有题却与 offer 擦肩而过 ,也有人并没有完美攻克所有题目却最终拿到了心仪的 offer 。至少和实验室有经验的学长同学沟通发现是有这样现象的 !

有人说 :算法面试优秀不意味着技术面试优秀 ,技术面试优秀不意味着能够拿到 offer 。的确是这样子 ,几个题目就能确定一个人的能力吗 ?不全然 !更多的时候 ,感觉技术面试不能局限于一个题目 ,局限于能否做出来正确结果 。而是考验一个人的思考方式和思考方向 。

举几个例子 。第一 ,很多题目不只有一个解法 ,暴力穷举可以解决 ,巧妙技巧也并不缺乏 ,能否做出正确结果还真不是最关键的 。更优秀的代码(例如时间空间复杂度的优势)肯定更能吸引到面试官的注意也能从一定程度上证明你的过人之处 。第二 ,许多题目会有多种特殊情况或者边界问题等 ,代码整体思路是对的 ,却总有通不过的样例 ?往往就是在这些特例上撞了墙 。再比如排序问题 ,方法很多 ,但是能简单的说快排就是最快的吗 ?事实上 ,数据的特征不同 ,采取不同的排序方法谁优谁劣真不一定 。有没有可能包含有大量重复的元素?原始数据有序度如何等等都值得思考 。

所以啊 ,平时还真不能局限于 " 做出来就好 " ,而是要多思考 ,多种思路并且更加全面才好 !小詹觉得面试官更加看重的也许就算思考能力和逻辑能力吧 。

那么 ,怎么刷题呢 ?在线刷题系统其实不少 ,以 LeetCode 为例 ,难度分 3 档 ,并且每一题都有序号 ,是从前往后 ?还是从易到难 ?遇到难题 ,是死磕到底还是瞟一眼别人的代码 ?

其实每个人习惯和想法不一样 ,不好说哪一个更好 。小詹分享下自己的看法如下 。

  • 刷题顺序 。之前是粗暴的从前往后 ,但是自己想了想更推荐一个专题一个专题的进行 。比如数组 、链表 、队列 、动态规划等等 ,一个一个的攻克 ,没必要每一题都刷 ,挑一些经典的具有代表意义的 。以数组为例 ,题目使用较多的方法有二分 、双指针 、回溯等 ,就可以考虑每一类数据结构的每一种方法挑选几题仔细攻克 ,比广撒网也许更好一些 。
  • 刷题习惯 。遇到简单题目也许很快就有思路并写出来正确代码了 ,但是更加建议即使是简单的题目也思考下多种思路 。当然小詹推荐花大精力刷中等难度的题目 ,太简单和太困难的可以先放过 。遇到难题也不要马上就去看别人的代码 ,看懂别人的和自己写出来是两回事 ,先自己尝试思考 ,如果多种思路都尝试了依旧不行可以去看看别人的思路 ,看懂后最好自己复现一下 。
  • 分析笔记 。其实看对某个题的掌握程度最好方法就是让自己跟别人讲解分析 ,教会了别人 ,自己一定印象深刻 ,因为这会大脑思考转的非常快 !所以做笔记分析思路是个很不错的习惯 !

一家之词 ,多多思考探索自己的方式 。也欢迎留言区分享你的刷题顺序 和技巧 ,也许能给别人带来一定启发噢 !

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小詹学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档