Leetcode算法题分类解析:(一)总览
1.为何/如何刷题
1.1 必要性
刷题刷题,从“刷”字就能看出其中的机械性和应试性,但这就是几乎所有IT公司面试中的一环。尽管面试者可能也对这种考察方式不是很满意,可在没有更好的方式之前,这个现状会一直保持下去。我们改变不了这个现状,那就适应它吧。
1.2 分类攻破
为什么要这么麻烦地分类呢?照着Leetcode的题目顺序做不就好了?个人觉得分类有几个动机:
- 一是找信心:一开始不幸碰到看起来简单却没思路的题真的很崩溃,心想后面还有那么多呐,怎么刚开始就卡住了?通过分类就能知道这道题是典型的一类题还是只是一道很细节的题甚至“奇技淫巧”。
- 二是提高效率:有时吃透一道题就可以解一大类。这真的跟以前上学时的备考很像,回忆一下更遥远的小学时的应用题大全那本神书。
- 三是题目整理:目前在网上看到的都是Solution,没有只是题目或者与Solution分开的版本。为了方便思考和学习,就单独整理了这么一份只有题目和思路的版本。
所以,建议大家都根据自己的理解进行分类,大体上应该都差不多,可以根据个人喜好微调。最好在一段时间内,集中解决同类问题来强化学习,而不是东一榔头西一棒子。
1.3 特点分析
通过题目的整理,可以看出Leetcode试题有几个特点,可能也适用于大部分面试题: