Skip to content

lingnanlu/leetcode-how-to-solve-it

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

怎样解题 leetcode

记得高中时偶然翻到一本小册子,书名叫《怎样解题》。它是美国的一个数学家,教育家写的。

当时我还陷入在应试教育的题海战术中,靠着大量的刷数学题来达到条件式的反射。这种方法对于 那些常规出题的套路来说,效果是不错的,但当遇到一些没见过的,新颖的题,就没有法子了。

也就是说,旧的方式无法是靠大量经验的积累来达到解题的目的。但,如果没有大量经验的累积呢?

每每看到一道不会的题,去翻阅答案,心中总有一门困惑,这个解答者是怎么想出来的呢?如果说他见过 类似的题,有着大量的经验,那么对于我这种缺乏经验之人,难道面对这种题就束手无策了么?

真到看到这本小册子,我才明白一个道理,解题并不仅仅依赖与你的经验,你的经验在遇到类似的题时,可能 发挥作用,但当你无法将其归类于自己过去所遇到过的模式时,怎么办呢?

书中给出了另外一种方法:启发示

其实这种方法就是教给你,当你面对一个你看似无能为力的题目时,如何用启发示的问题来一步步引导你来得到答案。 整个引导过程是自然的,而不是有什么所谓的"灵光一现","脑门一拍,有啦!"

现面,虽然面对的不再是数学题,而是算法题,而网上的各种题解依然是仅仅给出了答案,其给出的看似是解题思路的内容 不过是把代码用文字再翻译了一遍,这些思路并没有教给你,让你自己能想出答案,它们仿佛就是解答者的"灵光一现"。

我觉得对于算法题,也可以应用这种启发示的思想,来给每一题目一个自然而然的解题思路,希望你看到后,也能觉得自己能解出来 而不是有一种背诵思路的感觉。

最后是不是真正掌握了一道题,你只要问自己一个问题

你能清晰的自信的,没有背诵答案试的,讲出这个题的解题思路吗?

下面是《怎样解题》中给出的一些步骤和问题,你在解题过程中,应该时刻提醒自己这些问题

怎样解题表

如何刷题

  1. 刷题频率 工作日每天一至两道, 周末每天2至3道, 一周10道, 一月40道, 到明年3月份, 刷完300道就行了.
  2. 刷题顺序 先分类刷, 比如数组, 链表, 树, 栈, 队列, 图 对于每一类, 如果有几个题是相似的, 就一起刷, 从简单到复杂, 这几个类似的题做为一组.
  3. 记录思路: 思路要和代码放在一起, 有好的思路时, 更新代码, 更新代码时, 也更新思路. 思路会展现由简单到复杂的情况, 代码也要展现思路, 即回答, 你是如何想出来的 对话的内容由问题出发, 启发示的, 由简到难, 然后
  4. 代码可以直接粘贴到leetcode运行
  5. 由源码生成最终文件

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages