树的介绍部分摘取自博文二叉查找树(一)、二叉查找树(二)、二叉查找树。 1. 树的介绍 1.1 树的定义 树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。 把它叫做“树…
LeetCode之“散列表”:Two Sum && 3Sum && 3Sum Closest && 4Sum
1. Two Sum 题目链接 题目要求: Given an array of integers, find two numbers such that they add up to a specifi…
“《算法导论》之‘查找’”:散列表
本文介绍部分主要参考自一博文及《算法导论》。 散列表(Hash Table)是实现字典操作的一种有效数据结构。尽管最坏情况下,散列表中查找一个元素的时间与链表中查找的时间相同,达到了…
LeetCode之“散列表”:Contains Duplicate && Contains Duplicate II
1. Contains Duplicate 题目链接 题目要求: Given an array of integers, find if the array contains any …
"《算法导论》之‘线性表’":基于数组实现的单链表
对于单链表,我们大多时候会用指针来实现(可参考基于指针实现的单链表)。现在我们就来看看怎么用数组来实现单链表。 1. 定义单链表中结点的数据结构 1 typedef int ElementType; 2 clas…
"《算法导论》之‘字符串’":字符串匹配
本文主要叙述用于字符串匹配的KMP算法。 阮一峰的博文“字符串匹配的KMP算法“将该算法讲述得非常形象,可参考之。 字符串‘部分匹配值’计算 KMP算法重要的一步在于部分匹配值的计算。模仿《算法导…