LeetCode 刷题应该知道这几点
☘️刷题前准备
首先,刷题前你需要具备一些算法和数据结构的基础,包括:常考的数据结构:数组、字符串、链表、树(如二叉树)等,常考算法:分治、贪心、穷举、动态规划、回溯等。先把这些基础的算法和数据结构知识梳理一遍,如图,然后在理解的基础上再去力扣上刷题,可以让刷题事半功倍。
☘️开始刷题
刚开始刷力扣的小伙伴打开网站面对上千道难易度层次不齐的题目就懵了,完全不知从何下手。所以要先从一些 简单的题目 开始,先使用筛选工具将难度选择为「简单」。同时还可以添加多个种类的筛选条件,比如我想要刷数组的题目,可以再选择一个「数组」的话题标签,那么就可以从所有的数组简单题开始练习了。这些操作在学习工具页面底部的「题目列表」中也是可以找到的。或者你可以从 题解多 的题目开始练习,这样即使被某个问题卡住了,也能通过其他用户的优质题解打开解题思路。
☘️解题技巧
学习算法要渐次进行,先掌握一类算法,钻研透了再去掌握另一类。俗话说「贪多嚼不烂」。碰到不会的题目可以多去题解区看看其他人的解题思路,将每一道题目吃透。同时,对待每一道题目都应该追求完美,看看同一道题自己能想出多少种解法,其他题目是否可以用同样的解题思路。
☘️尝试了解多种题解:
比如力扣上的第 3 题「无重复字符的最长子串」这道题目基本解题思路是 滑动窗口,我们还可以用其他的解法,做完这道题目以后,再去练习「滑动窗口」相关题目巩固一下:比如:30. 串联所有单词的子串 76. 最小覆盖子串 159. 至多包含两个不同字符的最长子串 209. 长度最小的子数组 239. 滑动窗口最大值 567. 字符串的排列 632. 最小区间 727. 最小窗口子序列
☘️关于面试:
刷题时间不充裕的同学,可以从 《高频算法面试汇总》的探索卡片开始刷起,或者从题库页右侧的「热门推荐」开始刷起。
对于初学者,我也整理了一份书单,列在下面了。
原文链接:LeetCode上的题目相当于什么难度?
编辑&版式:pingping