摘要:
1、vector 变长数组,倍增的思想 系统为某一程序分配空间时,所需时间与空间大小无关,与请求次数有关。 #include<iostream> #include<vector> using namespace std; int main() { vector<int> a; // 定义一个vect 阅读全文
posted @ 2021-03-26 10:39
晓尘
阅读(69)
评论(0)
推荐(0)
摘要:
1、概述 主要为以下两部分: 哈希表的存储结构 字符串的哈希方式 1.1 Hash表的作用 把一堆复杂的结构映射到0~N一个小一点的范围内 如把0 ~ $10^9$但是其中有很多没意义的数字,把其中有意义的数字映射到一个小范围内,如0 ~ \(10^5\)。 如下面模拟散列表的例子。 1.2 如何写 阅读全文
posted @ 2021-03-26 10:28
晓尘
阅读(208)
评论(0)
推荐(0)
摘要:
3.1 概述 手写堆而不是STL的堆 STL里的堆就是优先队列priority_queue 如何手写一个堆? STL支持的操作: 插入一个值 求集合中的最小值 删除最小值 STL没办法直接实现,只能间接实现的功能: 删除任意一个元素 修改任意一个元素 3.1.1 什么是堆 堆就是一个二叉树或者说是完 阅读全文
posted @ 2021-03-26 10:18
晓尘
阅读(97)
评论(0)
推荐(0)
摘要:
1、概述 1.1 作用 将两个集合合并 询问两个元素是否在一个集合当中 1.2 暴力做法 用一个数组belong[x] = a存储哪个元素属于哪个集合,判断就是if(belong[x] == belong[y]),复杂度O(1) 但是当我们想合并两个集合时,假如集合a有1000个元素,集合b有200 阅读全文
posted @ 2021-03-26 10:14
晓尘
阅读(55)
评论(0)
推荐(0)
摘要:
作用:高效地存储和查找字符串集合的数据结构 用到Trie树的题字母类型不会很多,一定都会有限制 如想在Trie中存储如下元素: abcdef,abdef,aced,bcd,bcff,cdaa,bcdc,abc 存储方式如下: 在根节点root后,从头向后遍历,在每个单词的结尾位置做标记,如下图: 那 阅读全文
posted @ 2021-03-26 10:10
晓尘
阅读(61)
评论(0)
推荐(0)

浙公网安备 33010602011771号