欢迎光临散文网 会员登陆 & 注册

labuladong 的算法秘籍-读书笔记-学习算法和刷题的框架思维

2023-01-15 15:42 作者:风格星辰  | 我要投稿

一、数据结构的存储方式

数据结构的存储方式只有两种:数组(顺序存储)和链表(链式存储)。

所有的数据结构的基础都是数组或者链表


数组

优点

因为存储空间是连续的,所以查找方便

缺点

但是要插入或者删除中间元素,需要移动后续所有的元素,所以插入删除比较麻烦

并且扩容的时候需要将旧数组数据迁移到新数组,也比较麻烦


链表

优点

与数组相反,链表的插入删除很方便,只需要修改指向的指针即可,扩容时,修改最后一个元素的指针指向新地址。

缺点

因为存储空间不连续,所以查找元素,需要一个个元素遍历找,不能随机访问。并且需要存储前后元素地址,消耗更多存储空间。


二、数据结构的基本操作

遍历+访问 增删改查

各种数据结构的遍历 + 访问无非两种形式:线性的和非线性的

线性就是 for/while 迭代为代表,非线性就是递归为代表。

所有数据结构的遍历基本都是由for/while或者递归或者他们的组合实现的


三、算法刷题指南

数据结构是工具,算法是通过合适的工具解决特定问题的方法。


作者建议的刷题顺序

1、先学习像数组、链表这种基本数据结构的常用算法,比如单链表翻转,前缀和数组,二分搜索等。

2、学会基础算法之后,不要急着上来就刷回溯算法、动态规划这类笔试常考题,而应该先刷二叉树,先刷二叉树,先刷二叉树

因为二叉树是最容易培养框架思维的,而且大部分算法技巧,本质上都是树的遍历问题。


综上,对于畏惧算法的同学来说,可以先刷树的相关题目,试着从框架上看问题,而不要纠结于细节问题。


labuladong 的算法秘籍-读书笔记-学习算法和刷题的框架思维的评论 (共 条)

分享到微博请遵守国家法律