Skip to content

renmoqiqi/100-Days-Of-iOS-DataStructure-Algorithm

Repository files navigation

为什么会有这个

这个100天的挑战本来是我自己的计划,现在将学习过程分享给大家。最新的文章更新会在我的公众号 人魔七七 首发,大家可以关注更新,并在后期还会有这个系列的电子书下载方便大家学习阅读。

App来了

APP 的名字叫“啊!算法” ;App Store下载地址:App Store地址

这个系列的加强版App要来了。一直想找一种方式来呈现他,今天终于实现了。

这里不只包含 Stack,Queue,Heap,Tree,LinkedList,Graph,Hash Table等常见的数据结构的实现。

而且包含常见的算法实现,这些算法有来自于LeetCode,看过算法的人应该都知道,LeetCode一直很少有iOS实现的方式,特别是OC语言为主的实现。

这里不只有文章介绍而且有代码可以预览查看,并且还有可交互动画展示。

人魔七七公众号

其他平台

由于微信公众号对markdown的数学公式显示有点问题,因此内容有些会同步到简书或者掘金。

简书

掘金

这是什么东西

很多技术越往底层大致皆相似,皆是数据结构与算法的缩影。这就是为什么一线互联网公司面试时候特别注重这方面的考察,国外公司甚至很多轮面试都是这方面考察。每篇文章除了有文字描述,有的还有图片以及动画方便大家理解,还会有源代码Demo,尽量用通俗易懂的方式让大家明白。

怎么做呢

每周会更新一到两篇数据结构与算法方面的东西,大家也可以跟着做,监督自己进步。

电子书书的大致介绍

封面

iOS数据结构与开发实战封面.png

目录内容

  • 为什么要学习算法呢
  • 数学公式复习
  • 常用复杂度函数公式O(?)
  • 栈的特性
  • 动画描述
  • 栈最常见的场景及算法
  • 复杂度
  • 代码实现
  • 思路描述
  • 代码实现
  • 复杂度估算
  • 步骤示意图
  • 思路描述
  • 代码实现
  • 流程图
  • 代码实现
  • 思路描述
  • GitHubDemo
  • 题目思路描述
  • 灵感示意图
  • 主要代码实现
  • 代码思路描述
  • GitHubDemo
  • 题目描述
  • 灵感示意图
  • 主要代码实现
  • 代码思路描述
  • GitHubDemo
  • 题目描述
  • 灵感示意图
  • 思路
  • 过程图
  • 主要代码实现
  • 代码思路描述
  • GitHubDemo
  • 前言
  • iOS中数组是怎么优化的呢?
  • 结合数组API来分析
  • 推荐阅读
  • GitHubDemo地址
  • 队列的特性
  • 有几个注意的地方。
  • 主要代码讲解
  • 总结
  • GitHubDemo地址
  • 双端队列的特性
  • 优化思路
  • 主要代码实现以及讲解
  • GitHubDemo地址
  • 前言
  • 树的一些应用场景
  • 一张图来描述Binary Tree
  • Binary Tree的几个常见类型
  • 和Binary Tree有关的一些公式
  • 二叉树的存储方式
  • 二叉树的周游算法
  • 练习周游算法的技巧 1
  • 练习周游算法的技巧 2
  • 练习周游算法的技巧 3
  • 延伸
  • 二叉树的构建
  • 二叉树的插入,查找
  • 二叉树的前中后序遍历
  • GitHubDemo地址
  • 题目大意
  • 灵感思路
  • 主要代码
  • 代码思路
  • GitHubDemo地址
  • 题目大意
  • 主要代码
  • 灵感思路
  • GitHubDemo地址

Day18 - 二叉树的算法实战 Sum Root to Leaf Numbers

  • 题目大意
  • 主要代码
  • 灵感思路
  • GitHubDemo地址

Day19 - 二叉树的算法实战 Path Sum III

  • 题目大意
  • 解题思路
  • 主要代码
  • 代码思路

Day20 - 二叉树的算法实战 Same Tree

  • 题目大意
  • 解题思路
  • 主要代码
  • 代码思路
  • 复杂度分析

Day21 - 二叉树的算法实战 symmetric-tree

  • 题目大意
  • 解题思路
  • 主要代码
  • 代码思路
  • 复杂度分析

Day22 - 二叉树的算法实战 二叉树的最大深度

  • 题目大意
  • 解题思路
  • 主要代码
  • 代码思路
  • 复杂度分析