时间紧任务急,如何在LeetCode刷题

简介: 很多公司都会面试算法题,然而很多小伙伴平时工作很忙,没有时间或没有养成刷题的习惯,面试准备周期时间也很紧张,没办法刷完LeetCode,往往慌慌张张刷了一些题,然而其实效果也不好。当然这里还是建议大家平时多看看算法题,毕竟程序=数据结构+算法,对你以后的编程工作来说是大有好处的。

4.jpg


以下内容适合新生小白,老鸟请继续刷你的题吧


很多公司都会面试算法题,然而很多小伙伴平时工作很忙,没有时间或没有养成刷题的习惯,面试准备周期时间也很紧张,没办法刷完LeetCode,往往慌慌张张刷了一些题,然而其实效果也不好。


当然这里还是建议大家平时多看看算法题,毕竟程序=数据结构+算法,对你以后的编程工作来说是大有好处的。如果基于时间紧任务急的前提该怎么刷题呢?以下提供一些个人的思路:


1 题目很多,不要从头到尾全刷(你的时间恐怕也不够)


5.jpg


如上图,题目是有分类,有套路的,而大的分类无非数据结构和算法两类,虽然LeetCode上面有1000多道题了。然而所有题型目前来看是有边界的。而算法是有套路的!这些套路仍然我们提到过的算法和数据结构,所以你可以按标签刷,但实际上就算按标签刷题目还是挺多的,如何更高效的刷题呢?


在git 上(https://github.com/CyC2018/CS-Notes/blob/master/notes/Leetcode%20%E9%A2%98%E8%A7%A3%20-%20%E7%9B%AE%E5%BD%95.md)有前人为我们总结了一个清单,这个清单可以帮助你节省很多时间,你不需要再去找题目,再去花时间想要去做哪些类型的题目(而每个类型也有很多题,多的也有几百道),这个清单帮你从1000多道题中筛选出200多道 经典的题、面试中经常被提到的题。每个类型都会有一些基本描述,告诉你一些关于这个类型的基本知识。个人觉得还是很好的。



2 刷题数量


一天1、2题,隔三差五的刷恐怕不行。你需要每天、大量的、集中的刷题。你的面试准备周期你心里有数。另外最好定时定点的刷,有助于养成一个习惯。人是有遗忘曲线的,如果你隔一个星期不刷可能就会忘记之前刷过的一些题了。可以给自己设定一个期限和目标,什么时间内刷多少题,给自己一点点压力。


3 刷题顺序


建议从易到难,先来easy的,然后加大难度。


4 要不要看答案


有些小伙伴刷题的时候比较抗拒看答案,觉得自己做不出来不服气,一定要自己做出来,看答案就输了,看答案觉得自己很笨、很沮丧什么的。首先这些小伙伴可能比较要强,其实是好事,但要注意我们刷题的核心目的是什么,就像上文第1点说的,题型题目是有边界的,我们通过大量的刷题并不是要达到一个非常高的算法工程师的水平,而是通过刷题 “学会套路,应对套路”,就像应试教育一样,题海战术嘛。你上学的时候有没有被老师带着“刷过卷子”


   这里的建议是:

  • 好好分析题目,弄懂题目
  • 花几分钟时间,自己想解法
  • 如果几分钟搞不定,可以看答案了(几分钟想不到,几小时也有可能一样,没必要浪费那么多时间了)
  • 答案能看懂,理解了,不看答案自己再解一遍,有必要的话做笔记(不建议用纸笔,用ipad会比较高效些,方便整理和查阅)
  • 看了答案还不懂,网上对每个题都有很多前人的优秀题解,再好好参考下,直到看懂了。


随着你刷的题越来越多,你就会越来越上手,自然而然就没有那么依赖答案


5 刷题不能死记硬背


背是背不完的,一道题可以改变的方法有太多,重要的是要理解题,知道题背后的知识点,这样才可以举一反三,知道这些“套路”后,遇到相似题才能自己解出来。

6 学会利用资源


现在网络上有很多优秀免费的资源,大家要学会利用,不然有时候答案都看不懂的时候怎么办?

这里分享一些好的资源:


微信公众号:labuladong


6.jpg


这个公众号写了很多文章,主要都是算法类的总结和刷题套路,比如动态规划讲的特别好。



youtube:  Back to Back SWE

https://www.youtube.com/channel/UCmJz2DV1a3yfgrR7GqRtUUA


7.png


特点:黑人小哥,讲的生动有趣,不会觉得无聊。



B站:


绵羊教授

https://space.bilibili.com/354892788?from=search&seid=6549052393519048731


绵羊教授 他的每道题有两个版本,用中文说一遍,再说英文说一遍,如果你准备外企的面试,就可以多看看英文的版本


小Q刷题

https://space.bilibili.com/149758?from=search&seid=1097042333993831009

特点:题目刷的全


花花酱

https://space.bilibili.com/9880352?from=search&seid=9395065874802859629

特点:题目刷的全(快把LeetCode全刷完了)


github:

https://github.com/MisterBooo/LeetCodeAnimation

特点:会把题目用动画的方式演示出来


8.jpg


最后:面试官考你一道题无非是想通过这道题看看你了不了解它背后的原理知识。这些知识就是看你知不知道某一个算法或者够不够了解某一个数据结构。


祝大家刷题顺利!


相关文章
|
4月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
64 6
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 26. 树的子结构
这篇文章提供了解决LeetCode上"剑指Offer 26. 树的子结构"问题的Python代码实现和解析,判断一棵树B是否是另一棵树A的子结构。
58 4
|
5月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
130 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
280页PDF,全方位评估OpenAI o1,Leetcode刷题准确率竟这么高
【10月更文挑战第24天】近年来,OpenAI的o1模型在大型语言模型(LLMs)中脱颖而出,展现出卓越的推理能力和知识整合能力。基于Transformer架构,o1模型采用了链式思维和强化学习等先进技术,显著提升了其在编程竞赛、医学影像报告生成、数学问题解决、自然语言推理和芯片设计等领域的表现。本文将全面评估o1模型的性能及其对AI研究和应用的潜在影响。
53 1
|
4月前
|
数据采集 负载均衡 安全
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
本文提供了多个多线程编程问题的解决方案,包括设计有限阻塞队列、多线程网页爬虫、红绿灯路口等,每个问题都给出了至少一种实现方法,涵盖了互斥锁、条件变量、信号量等线程同步机制的使用。
LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
|
5月前
|
索引 Python
【Leetcode刷题Python】从列表list中创建一颗二叉树
本文介绍了如何使用Python递归函数从列表中创建二叉树,其中每个节点的左右子节点索引分别是当前节点索引的2倍加1和2倍加2。
77 7
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 22. 链表中倒数第k个节点
Leetcode题目"剑指 Offer 22. 链表中倒数第k个节点"的Python解决方案,使用双指针法找到并返回链表中倒数第k个节点。
59 5
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 30. 包含min函数的栈
本文提供了实现一个包含min函数的栈的Python代码,确保min、push和pop操作的时间复杂度为O(1)。
35 4
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
Leetcode题目"剑指 Offer 21. 调整数组顺序使奇数位于偶数前面"的两种Python解决方案,一种是使用双端队列调整数组顺序,另一种是使用双指针法将奇数移到数组前半部分,偶数移到后半部分。
30 4