Tank's Blog

Thinking will not overcome fear but action will.

分治

关于分治的基本概念和相关算法题

本文首次发布于 Tank’s Blog, 作者 @谭轲 ,转载请保留原文链接. 引言 文章内容总结自 极客时间 的订阅专栏 数据结构与算法之美,以及 算法训练营。 分治 简介 分治算法(divide and conquer)的核心思想就是,分而治之 ,也就是将原问题划分成 n 个规模较小,并且结构与原问题相似的子问题,递归地解决这些子问题,然后再合并其结果,就得到原问题的解...

哈希表

关于哈希表的基本概念和相关算法题

本文首次发布于 Tank’s Blog, 作者 @谭轲 ,转载请保留原文链接. 引言 文章内容总结自 极客时间 的订阅专栏 数据结构与算法之美,以及 算法训练营。 哈希表 简介 哈希表(Hash Table)也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数(Ha...

树的递归

关于树的递归的算法题收录

本文首次发布于 Tank’s Blog, 作者 @谭轲 ,转载请保留原文链接. 引言 文章内容总结自 极客时间 的订阅专栏 数据结构与算法之美,以及 算法训练营。 树的递归 简介 树这种数据结构非常适合使用递归,原因很明显:一个树由多个子树构成,而每一个子树也可以看成是独立的树,结构可以说完全一样,因此涉及到树这一数据结构的问题时,我们应拥抱递归,利用递归方法去解决。下面收...

递归

关于递归的基本概念、递归模板和相关算法题

本文首次发布于 Tank’s Blog, 作者 @谭轲 ,转载请保留原文链接. 引言 文章内容总结自 极客时间 的订阅专栏 数据结构与算法之美,以及 算法训练营。 递归 基本概念 递归(Recursion)是一种应用非常广泛的算法(或者编程技巧),前面讲树、二叉树的遍历中就用到了递归,之后会介绍的 DFS (深度优先搜索)、分治与回溯也会用到递归,递归的代码一般都非常简洁。...

树、二叉树

关于树、二叉树的基本概念、特性和相关算法题

本文首次发布于 Tank’s Blog, 作者 @谭轲 ,转载请保留原文链接. 引言 文章内容总结自 极客时间 的订阅专栏 数据结构与算法之美,以及 算法训练营。 树、二叉树 基本概念 树(Tree)是一种非线性表数据结构,树里面每个元素我们叫作 ”节点“;用来连线相邻节点之间的关系,我们叫作 “父子关系”;没有父节点的节点叫作 根节点,没有子节点的节点叫作 叶子节点 或者...

队列

关于队列的基本概念、特性和相关算法题

本文首次发布于 Tank’s Blog, 作者 @谭轲 ,转载请保留原文链接. 引言 文章内容总结自 极客时间 的订阅专栏 数据结构与算法之美,以及 算法训练营。 队列 基本概念 队列(queue)和栈一样是一种“操作受限”的线性表数据结构,最基本的操作也是两个:入队 enqueue() 放一个数据到队列尾部;出队 dequeue() 从队列头部取一个元素。 跟栈一样,队...

关于栈的基本概念、特性和相关算法题

本文首次发布于 Tank’s Blog, 作者 @谭轲 ,转载请保留原文链接. 引言 文章内容总结自 极客时间 的订阅专栏 数据结构与算法之美,以及 算法训练营。 栈 基本概念 栈(stack)是一种“操作受限”的线性表数据结构,只允许在一端插入和删除数据,且删除数据时必须满足先进后出、后进先出。 栈既可以用数组来实现,也可以用链表来实现。用数组实现的栈,我们叫作 顺序栈...

链表

关于链表的基本概念、特性和相关算法题

本文首次发布于 Tank’s Blog, 作者 @谭轲 ,转载请保留原文链接. 引言 文章内容总结自 极客时间 的订阅专栏 数据结构与算法之美,以及 算法训练营。 链表 基本概念 链表(Linked list)与数组一样是线性表数据结构,但它不需要连续的内存空间,链表是通过指针将一组零散的内存卡串联起来使用的。 链表 不支持随机访问,需要遍历去访问节点,所以时间复杂度为 ...

数组

关于数组的基本概念、特性和相关算法题

本文首次发布于 Tank’s Blog, 作者 @谭轲 ,转载请保留原文链接. 引言 文章内容总结自 极客时间 的订阅专栏 数据结构与算法之美,以及 算法训练营。 数组 基本概念 数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 数组支持 随机访问,根据下标进行随机访问的时间复杂度为 O(1);数组的 插入、删除 操作由于涉及...

JavaScript类型

关于JavaScript类型的小事项,包括Number类的精度比较问题,Object的装箱转换和拆箱转换

本文首次发布于 Tank’s Blog, 作者 @谭轲 ,转载请保留原文链接. 引言 文章内容总结自 极客时间 的订阅专栏 重学前端,节选了其中我觉得不太熟悉的地方。 Number 非整数的 Number 类型无法用 == (===也不行) 来比较 1 console.log( 0.1 + 0.2 == 0.3); 输出结果为 false,因为等式两边相差一个微小的值,...