算法学习-1-如何刷题,时间复杂度|8月更文挑战

191 阅读2分钟

算法-01-时间复杂度

01-复杂度的分类

常见复杂度

图片.png 02-时间进行对比

图片.png 时间进行对比

代码进行解释:

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

图片.png

如何高效学习算法 需要注意的三处

一、三分看视频理解、七分练习

最佳办法:1.5~2.0 倍数播放、遇到难点(暂定+反复) 最差办法:类似看美剧一样,原速看完,仅一遍。 以前用的就是最差办法。业余选手有很多错误动作。 学习之后要实践起来。就像 keep 健身,看了视频自己要照着动作来练。

二、摒弃旧习惯-最重要

不要死磕 五毒神掌(敢于放手、敢于死记硬背代码) 不懒于看高手的代码(国际版的高票回答),就像打游戏,看职业选手第一视角。

最佳方式: 5分钟想不出来,直接看题解或者高票代码,用五毒神掌变成自己的东西。这个过程:会觉得自己很菜甚至有点自卑,但是有借势而起的感觉。找到这种感觉就是非常正确的一种方式了。 不要羞于自己的代码和别人的代码比起来简直是一坨屎,能意识到这一点就已经是很大的进步了。 最差方式: 看到题目想自己单挑一下,不借助外部帮助自己解决;以为 15-30 分钟可以搞定,谁知道死磕了 2-3 个小 时或者一晚上,终于“通过”。精疲力尽,没精力学习高票程序答案,就开始做下一题(或放弃)。

三、学习方法:

改变自己的学习习惯(不要死磕) 五毒神掌(重要的是五!过遍数,而不是每次花很长时间) 不要死磕 AC了事,要看高票代码和高质量题解。 最大误区: LeetCode 题目只做一遍!(90%素人、30%学员) 即使来不及做,也要保证以前做过的题目 五 遍或者四遍。

首先,先数组和链表的题目先进行练手 实战题目

  1. 206. 反转链表
  2. 141. 环形链表
  3. 24. 两两交换链表中的节点
  4. 142. 环形链表 II
  5. leetcode.com/problems/re…