数据结构与算法
文章平均质量分 84
学习记录
FserSuN
这个作者很懒,什么都没留下…
展开
-
JSON对象平铺和平铺后对象化的实现学习
1.什么是JSON对象平铺与对象化常见的json结构如下:let jdata = { "a": "a1", "b": { "b1": "b11" }, "c": ["c1", "c2", "c3"], "d": [{ "d1": "d2" }]}平铺即用单层的 (Key,Value) 结构表示当前这种递归结构,平铺后效果如下:{ "a":"a1", "b.b1":"b11", "c[0]":"c1", "c[翻译 2021-06-13 14:12:56 · 2058 阅读 · 1 评论 -
流量控制之漏桶算法学习
1 流量整形的概念流量整形是一种控制发送速率和数量的机制。通过流量整形能够调节数据传输速度减少拥塞。有两种类型的流量整形算法:漏桶令牌桶2 漏桶算法介绍假设我们有一个桶,我们希望以随机的速率向桶中倒水,并以恒定的速率从桶中取水。因此我们需要在桶底部打一个固定大小的洞,这样来保证水流处的速率是恒定的。由于桶的体积有限,因此倒满后就停止。水流入的速率可以改变,但输出的速率是恒定的。这种平滑输出流量的方法称为漏桶技术。突发进入的流量存储在桶中,并以稳定的速率输出。上图中,假设主机产生突发流量翻译 2020-09-19 21:20:23 · 2176 阅读 · 0 评论 -
LogLog基数估计算法学习与实现分析
1 基本概念1.1 基数基数指一个集合中不同元素的个数。例如集合{A,B,C,B,C}共5个元素,但只有3个不重复的元素。所以基数为3。1.2 基数估计算法基于概率统计理论估计指定集合基数的算法。这种类型的算法降低了存储空间的使用,会带来统计误差。但可以通过一定方法将误差控制在一定范围内1.3 伯努利试验一次实验的结果只有发生和不发生两种,重复做这个实验,直到结果发生为止,记录下实验的...原创 2019-12-19 22:45:27 · 2008 阅读 · 0 评论 -
跳跃表SkipList的基本概念
1 基本概念1.1 概述链表搜索的最坏时间复杂度是O(n),搜索过程中只能逐个遍历,不能能跳过结点。搜索平衡查找树,在一次比较后我们可以跳过半数的结点。而查找排好序的数组,可以通过二分搜索来访问元素。为了加快链表查找速度,因此有了跳跃表(Skip List)。思路很简单,通过创建多层结点,跳过部分结点来达到加快查找的目的。以下图为例,为了加快查找速度我们增加了一层结点。当前最大层高为2。以搜...翻译 2019-07-21 21:19:09 · 475 阅读 · 0 评论 -
Guava布隆过滤器(boomfilter)使用简介
1 布隆过滤器简介布隆过滤器是一种空间利用率较高的概率型数据结构,用来测试一个元素是否在集合中。但是存在一定可能,导致结果误判。即元素不在集合中,查询结果却返回元素在集合中。布隆过滤器一些的性质与哈希表不同,布隆过滤器是一个大小固定的过滤器,可以通过任意大的数字来描述集合大小添加一个元素到集合中永远不会添加失败,但误报率会随着添加元素数量的增多逐渐上升,直到集合中所有位都设置位1查询一...翻译 2019-07-07 16:00:49 · 10479 阅读 · 0 评论 -
LeetCode 76 minimum window substring
给你两个字符串string1与string2,找出string1中包含有所string2中字符的最小子串。例: string1: this is a test string string2: tist 输出: t stri (test string)方法1(暴力搜索) a)生成string1的所有子串 b)对每个子串检查是否包含了string2 c)返回最小的子翻译 2017-01-01 20:09:41 · 611 阅读 · 0 评论 -
直方图中最大矩形面积
原文地址:http://www.geeksforgeeks.org/largest-rectangle-under-histogram/ 注意:本文并为对原文完整翻译,而是结合原文并根据本人理解写出,因此部分内容为完整翻译,部分内容为个人理解所写。直方图中最大矩形面积一个直方图是由许多矩形组成,在给定的直方图中找出最大的矩形面积。为了简化问题,假定所有矩形宽度都为1个单位。例如,下面的直方图中有7翻译 2016-09-03 00:49:35 · 14014 阅读 · 4 评论 -
快速幂总结
参考 http://baike.baidu.com/link?url=iA-pT7GX0fEgeg3Bb3Mk_k2Xt-lgjSoX6nGJKCFDv1JVvHwQGwMnFXRI4VImEf2LMIYnSS3TfWjMZhtGiuD6t_开始没看懂,后来看了看幂运算的性质,拆分出下面1)2)3)4)步,才明白快速幂。1.幂运算的性质 m^(a+b) = m^a*m^b原创 2015-03-21 10:37:25 · 726 阅读 · 0 评论 -
在有向无环图中求最长路径
原文地址:http://www.geeksforgeeks.org/find-longest-path-directed-acyclic-graph/给定一个带权有向无环图及源点S,在图中找出从S出发到图中其它所有顶点的最长距离。对于一般的图,求最长路径并不向最短路径那样容易,因为最长路径并没有最优子结构的属性。实际上求最长路径属于NP-Hard问题。然而,对于有向无环翻译 2016-04-30 16:51:10 · 33235 阅读 · 3 评论 -
Manacher算法求解最长回文子串
本文将通过Manacher算法来寻找最长回文子串。该算法O(N)时间复杂度为O(N),空间复杂度为O(N)。一种O(N)的解法(Manacher算法)首先,我们通过插入特殊字符#将输入字符串S转换为字符串T。具体原因本文随后会进行解释。例如: S = “abaaba”, T = “#a#b#a#a#b#a#.为了找出最长回文子串,我们需要对每个Ti扩展,这样Ti-d…Ti+d将会构成回文。d是以Ti翻译 2016-11-20 02:13:05 · 789 阅读 · 0 评论 -
Candy 分配糖果
题目链接:https://leetcode.com/problems/candy/1.题目描述有N个孩子站成一排,每个孩子有一个分值。现在你需要为这些孩子分配糖果,但需要满足下面的需求。每个孩子至少分一个。拥有较高分值的孩子得到的糖果要比与他相邻的孩子得到的数量多。那么最少需要给这些孩子分配多少糖果? leetcode 135 candy There are N children stan翻译 2016-10-23 02:33:10 · 1867 阅读 · 0 评论 -
挑战程序设计竞赛2.3.3 有关计数问题的DP 多重集组合数
这小节公式的变形,开始没看懂,自己做了一下,这里留个笔记。变形后得出最终的递推公式。dp的意义说中有讲解。原创 2015-04-28 12:49:31 · 1254 阅读 · 0 评论 -
位运算 8皇后学习笔记
http://blog.163.com/soonhuisky@126/blog/static/157591739201321293910243/ 代码与注释http://blog.csdn.net/xadillax/article/details/6512318 代码与讲解结合代码void init(int row, int ld, int rd) {翻译 2015-11-23 13:12:10 · 873 阅读 · 0 评论