刷 LeetCode 那点事 !

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

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


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


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


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


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


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


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


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

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


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

相关文章
AMD(Radeon R9 M370X这块显卡怎么样)
想必现在有很多小伙伴对于AMD Radeon R9 M370X这块显卡怎么样方面的知识都比较想要了解,那么今天小好小编就为大家收集了一些关于AMD Radeon R9 M370X这块显卡怎么样方面的知识分享给大家,希望大家会喜欢哦。
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
33078 81
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17818 24
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36801 22
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24873 15
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36786 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。

热门文章

最新文章