随笔分类 - 数据结构
摘要:数组指针、指针数组、二维数组 蛋总常说“凡事必有初”,写下这篇博客的初衷在于: 今天尝试用指针的方式访问一个大二维数组,而又不想用一维数组人工计算偏移量,于是有了指针数组与数组指针的探索。结论是数组指针。 二维数组 我们在开辟一个二位数组的时候似乎很简单。 比如要开辟一个第一二维度分别是5和8的in
阅读全文
摘要:LeetCode 面试题 03.05. 栈排序 题目描述 栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据,但不得将元素复制到别的数据结构(如数组)中。该栈支持如下操作:push、pop、peek 和 isEmpty。当栈为空时,peek 返回 -1。 示例1
阅读全文
摘要:LeetCode 341. 扁平化嵌套列表迭代器 题目描述 给你一个嵌套的整数列表 nestedList 。每个元素要么是一个整数,要么是一个列表;该列表的元素也可能是整数或者是其他列表。请你实现一个迭代器将其扁平化,使之能够遍历这个列表中的所有整数。 实现扁平迭代器类 NestedIterator
阅读全文
摘要:简单C++线程池 Java 中有一个很方便的 ThreadPoolExecutor,可以用做线程池。想找一下 C++ 的类似设施,尤其是能方便理解底层原理可上手的。网上找到的 demo,基本都是介绍的 projschj 的C++11线程池。这份源码最后的commit日期是2014年,现在是2021年
阅读全文
摘要:LeetCode 146. LRU缓存机制 题目描述 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。 实现 LRUCache 类: LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存 int get(int key)
阅读全文
摘要:Treap 树是很有用的一种结构,加上不同的约束规则之后,就形成了各种特性鲜明的结构。 最基本的二叉树,加以约束之后,可以形成 BST、AVL、Heap、Splay、R-B Tree …… 等,适用于各种场景。 对于平衡树,种类有很多,有的严格平衡,每次某个子树上任意两个子树的高度差超过1就会进行调
阅读全文
摘要:两道环形队列设计的题。 LeetCode 622. Design Circular Queue LeetCode 641. Design Circular Deque 题目描述 一道题是环形 queue 的设计,circular queue is also called "Ring Buffer";
阅读全文
摘要:LeetCode 上两道相似的 hash 数据结构设计题。 LeetCode 705. Design HashSet LeetCode 706. Design HashMap 题目描述 两道题题干相似,都是给出接口要求实现数据结构。两道题都做出了一些简化以降低设计难度: key / value 都用
阅读全文

浙公网安备 33010602011771号