• Stars
    star
    850
  • Rank 53,628 (Top 2 %)
  • Language
    Objective-C
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

100天iOS数据结构与算法实战

为什么会有这个

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

App来了

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

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

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

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

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

人魔七七公众号

其他平台

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

简书

掘金

这是什么东西

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

怎么做呢

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

电子书书的大致介绍

封面

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

目录内容

Day01 - 算法的符号大O

  • 为什么要学习算法呢
  • 数学公式复习
  • 常用复杂度函数公式O(?)

Day02 - 栈

  • 栈的特性
  • 动画描述
  • 栈最常见的场景及算法
  • 复杂度
  • 代码实现

Day03 - 栈的算法实战Valid Parentheses

  • 思路描述
  • 代码实现
  • 复杂度估算

Day04 - 栈的算法实战 逆波兰表示法

  • 步骤示意图
  • 思路描述
  • 代码实现

Day05 - 栈的算法实战 Evaluate Reverse Polish Notation

  • 流程图
  • 代码实现
  • 思路描述
  • GitHubDemo

Day06 - 栈的算法实战 Simplify Path

  • 题目思路描述
  • 灵感示意图
  • 主要代码实现
  • 代码思路描述
  • GitHubDemo

Day07 - 栈的算法实战 Min Stack

  • 题目描述
  • 灵感示意图
  • 主要代码实现
  • 代码思路描述
  • GitHubDemo

Day08 - 栈的算法实战 TrappingRainWater

  • 题目描述
  • 灵感示意图
  • 思路
  • 过程图
  • 主要代码实现
  • 代码思路描述
  • GitHubDemo

Day09 - iOS中数组的算法分析

  • 前言
  • iOS中数组是怎么优化的呢?
  • 结合数组API来分析
  • 推荐阅读
  • GitHubDemo地址

Day10 - 队列

  • 队列的特性
  • 有几个注意的地方。
  • 主要代码讲解
  • 总结
  • GitHubDemo地址

Day11 - 双端队列

  • 双端队列的特性
  • 优化思路
  • 主要代码实现以及讲解
  • GitHubDemo地址

Day12 - 树

  • 前言
  • 树的一些应用场景

Day13 - Binary Tree上

  • 一张图来描述Binary Tree
  • Binary Tree的几个常见类型
  • 和Binary Tree有关的一些公式
  • 二叉树的存储方式

Day14 - Binary Tree Traversal

  • 二叉树的周游算法
  • 练习周游算法的技巧 1
  • 练习周游算法的技巧 2
  • 练习周游算法的技巧 3
  • 延伸

Day15 - Binary Tree 的实现

  • 二叉树的构建
  • 二叉树的插入,查找
  • 二叉树的前中后序遍历
  • GitHubDemo地址

Day16 - 二叉树的算法实战 Binary Tree Paths

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

Day17 - 二叉树的算法实战 Minimum Depth of a Binary Tree

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

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

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

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

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

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

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

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

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

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

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