《数据结构与算法之美》01~05笔记

文章目录

关于我的仓库

  • 这篇文章是我为面试准备的学习总结中的一篇
  • 我将准备面试中找到的所有学习资料,写的Demo,写的博客都放在了这个仓库里iOS-Engineer-Interview
  • 欢迎star??
  • 其中的博客在简书,优快云都有发布
  • 博客中提到的相关的代码Demo可以在仓库里相应的文件夹里找到

前言

  • 该系列为学习《数据结构与算法之美》的系列学习笔记
  • 总结规律为一周一更,内容包括其中的重要知识带你,以及课后题的解答
  • 算法的学习学与刷题并进,希望能真正养成解算法题的思维
  • LeetCode刷题仓库:LeetCode-All-In
  • 多说无益,你应该开始打代码了

01讲为什么要学习数据结构和算法

  • 想要通关大厂面试,千万别让数据结构和算法拖了后腿
  • 我们学任何知识都是为了“用”的,是为了解决实际工作问题的
  • 业务开发工程师,你真的愿意做一辈子CRUD boy吗?【crud是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。crud主要被用在描述软件系统中数据库或者持久层的基本操作功能。】
  • 不需要自己实现,并不代表什么都不需要了解。
  • 在基础框架中,一般都揉和了很多基础数据结构和算法的设计思想。
  • 掌握数据结构和算法,不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的。
  • 基础架构研发工程师,写出达到开源水平的框架才是你的目标!
  • 对编程还有追求?不想被行业淘汰?那就不要只会写凑合能用的代码!
  • 掌握了数据结构与算法,你看待问题的深度,解决问题的角度就会完全不一样。

课后题:你为什么要学习数据结构和算法呢?在过去的软件开发中,数据结构和算法在哪些地方帮到了你?

  • 在最开始对算法有概念是在刚大一的时候,当时学校没开C语言,都是自己在那里做算法题,对于算法也是在那个时候开始用些许认识的,当时就会觉得很奇妙
  • 后来参加了蓝桥杯,ACM校赛,开始意识到自己和高手之间有多深的差距,进入实验室学习iOS开发后,算法也是基本放下,也是明显感到和后台舍友之间的差距越来越大
  • 目前数据结构和算法,算法课都已经上完,对于各种算法好像懂点,看到题也能像孔乙己一样支支吾吾说个DP出来,可一到上手敲的时候,还是gg
  • 即将参加面试,算法作为重要的一环,我不希望会拖我后腿,甚至希望能是个加分项,为此,我会✊到底
  • 过去的软件开发,在iOS开发阶段,调的都是Apple的API,没怎么用到算法与数据结构知识,但最近阅读RunTime源码的时候,由于Apple用了很多Hash的知识,没有这方面的知识很容易对源码产生困惑

02讲如何抓住重点,系统高效地学习数据结构与算法

  • 数据结构是为算法服务的,算法要作用在特定的数据结构之上。
  • 复杂度分析对于学习算法有很大的用处,✊学好

img

  • 十个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树

  • 十个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法

  • 不要为了学习而学习,而是要学习它的“来历”“自身的特点”“适合解决的问题”以及“实际的应用场景”

课后题:请思考一下你自己学习这个专栏的方法,你在之前学习数据结构和算法的过程中,遇到过什么样的困难或者疑惑吗?

  • 这篇文章就是方法的一部分,在每一讲学完以后都会写成这样一块的总结,另外每天在LeetCode两道题
  • 困难与疑惑真的是在于总感觉代码写不出来,想想挺对,一写就错

03讲复杂度分析(上):如何分析、统计算法的执行效率和资源消耗

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值