C/C++教程

算法小白如何高效、快速刷leetcode?

本文主要是介绍算法小白如何高效、快速刷leetcode?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

leetcode 刷了 300 题。

建议题主先把二叉树的各种遍历方式先写一遍。

递归这个思想要了然于心。

碰到递归就要想想能不能反过来求解,类似于动态规划。

碰到动态规划想想能不能变成贪婪算法。

建议先把伪代码先写好,分情况讨论,然后再写代码。这点非常重要,面试的时候 debug 时间过长很不好。

状态可以用哈希表来记录。有的时候状态数目比较少可以直接用数组来记录。

了解一下补码反码等概念,知道一些操作的基本用处,比如异或,移位。

注意总结,比如说 two sum 这个题,可以把加法变成乘法,变成任何操作。

了解状态机这个概念,一些题目状态太多,思维容易混乱,用状态机来表示简洁明了。

leetcode 上有一些实现数据结构的题,试着实现并打败大多数人。

建议用 c 语言写字符串的题。一些用到哈希表,优先队列的题可以用 Java 等高级语言(c 语言也有,高级语言方便一点)。

所谓的高效不是我今天写了几道题,而是我能想起几道题。开始写代码遇到阻碍是正常的,但是阻碍才是成长,天天练习一加一等于二一点成长也没有。

编辑于 2019-05-21

九章算法

九章算法

ACMer

2,012 人赞同了该回答

先说下我自己的情况,刷题量2000+ ACM金牌,曾担任脸书面试官,总结了很多刷题的方法套路。几年来,我也一直在迭代和优化最短时间内搞定数据结构和算法的方法。

时间充裕的话,不妨花两个小时看下我录的关于如何刷题的视频

疫情下,如何快速拿到大厂offer!_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com图标

1.先说方向

就像题主问的,如果只是应付面试,那么下面这张图就给出了答案。

《九章算法班》版权所有

颜色越红,表示面试中碰到的概率越高,越要优先掌握的算法和数据结构;灰色的基本不考,这部分可以先放一放。

2.刷多少题

可以参考我整理的面试常见知识点的考察频率来刷,300题基本覆盖了80%以上的面试算法问题。

3.具体怎么刷

你可以在LintCode上按照算法和数据结构类型来筛选对应的题目,然后按出现频率从高到低的顺序来刷。题目的答案,你可以在 Lintcode参考答案查询 上找到。

这篇关于算法小白如何高效、快速刷leetcode?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!