注册 LeetCode 账号,国区力扣leetcode-cn.com
头像右上角,进度管理,创建一个咱们的进度,比如名字就是开课吧/kkb。
数据结构和算法
数据结构顾名思义,就是存储数据的结构。struct
算法,是解决问题的过程和方法。
为什么这两个经常一起叫,数据结构与算法。是因为在解决问题的时候,我们实现一个算法往往需要用到各种各样的数据结构,也是只有理解了数据结构才能更好的更多种类的去实现算法。
现在学习的话,不单纯的去学习数据结构或者算法本身,直接通过 文章+实践+讲解+互动 这样来快速入门。
学习算法的几种方式:
- 在leetcode上无脑刷题(效率最低)
- 按标签和难度进行刷题
- 通过各种算法的经典题型来学习(需要有人总结有人带才可以)
我的学习方式是 先3后2,跟着人将经典题型都刷一遍,差不多所有专题下来一百五十多道吧,然后自己差不多就可以按标签去刷自己不熟悉的类型了。基本上经典题,一道可以变种出来好多。
算法的基础入门篇差不多有以下几种:
数组、链表、栈、树、哈希表、双指针、(图)
通过这些类型掌握一些基础的数据结构的特性,然后就可以去学习一些常用的算法了,比如:
二分、贪心、滑动窗口、搜索、动态规划(dp)、背包、分治、剪枝、位运算、Tire树、并查集、字符串匹配、堆等。
学习方式的话,可能就是每天一到两道题,然后外加一些文档这样,然后每天配合讲解,大概一周过2个基础类型(应该可以)。
基础入门篇差不多最难的是栈,所以得做好心理准备。
第一个月就是算法的基础入门篇,打好基础才能更好的往下走。
大家先看文章,再去刷题,事半功倍!