
算法
文章平均质量分 57
骚铭科技
这个作者很懒,什么都没留下…
展开
-
Red-Black Tree
红黑树前段时间看到STL map使用的数据结构是红黑树,研究了一下。红黑树的由来红黑树是二叉查找树的升级版本。二叉树只是平均树深为O(lg(n)),但是无法保证树深h一定是O(lg(n))。这就是红黑树发明的原因。红黑树为每个node增加一个bit,为color:red or black。红黑树的属性节点只有两种颜色:黑的和红的根一定为黑色叶节点(NIL)一定是黑的红节点的两个孩子一定是黑的原创 2015-08-23 19:36:44 · 454 阅读 · 0 评论 -
[cs229] k-means 图像压缩
k-means 算法因为简单易实现,所以有许多应用。其中一个有意思是应用于有损图像压缩。其核心思想是通过聚类将颜色表示数量减少。例如,传统RGB,每个通道0~255(8 bits),则可以表示16777216 (24 bits)种颜色,通过聚类可以减少到16种颜色。下面以此为例,比较一下原始图像与压缩图像。迭代次数 50 次,聚类数目 16。原创 2017-03-07 10:30:04 · 2089 阅读 · 2 评论 -
自定义哈希函数
每种数据类型都需要相应的 hash function。在C++中,一些内置类型不需要自定义哈希函数,例如,int,double,string等。但是一些自定义的数据类型就需要自定义哈希函数了。例如,下面定义了直线Line,根据y=kx+by = kx +b,每条直线需要两个变量来定义:kk,bb。注意,除了定义哈希函数外,记得还要重载==运算符,也就是定义等于操作。#include <iostrea原创 2016-08-23 09:47:33 · 3106 阅读 · 0 评论 -
[Leetcode] Minimum Height Trees
Minimum Height Trees For a undirected graph with tree characteristics, we can choose any node as the root. The result graph is then a rooted tree. Among all possible rooted trees, those with minimum原创 2016-05-13 15:20:32 · 446 阅读 · 0 评论 -
[Leecode] Maximum Gap
Maximum Gap题意很清晰,要找出最大的gap,但是是顺序序列最大的gap。由于要求线性时间,很容易想到算法导论中说的线性时间排序算法:Counting Sort, Radix Sort 和 Bucket Sort。题目中还有一个提示,序列中每个元素都是32 bits 的 positive integer,所以,我想用基数排序应该是比较恰当的。 基数排序的时间复杂度如下, O(d(n+k)原创 2016-02-02 20:08:54 · 359 阅读 · 0 评论 -
Paxos算法
共识算法Paxos 算法共识问题Paxos算法描述伪代码直观理解容错性分析共识问题什么是共识问题? 粗略地说,该问题是在一个或多个进程提议了一个值应当是什么后,使进程对这个值达成一致协定。解决什么问题? 在一个计算机提议一个动作后,控制引擎的所有计算机要决定“继续”还是“放弃”。原创 2015-10-24 10:41:42 · 1243 阅读 · 0 评论 -
[Leetcode] LRU Cache. 哈希表+双向链表之实现
题目首先来看题目,就是实现一个LRU,最近最少使用。 Design and implement a data structure for Least Recently Used (LRU) cache. It should support the following operations: get and set. get(key) - Get the value (will alwa原创 2015-12-12 14:45:11 · 3244 阅读 · 1 评论 -
Indicator random variables --Hat check problem
Indicator random variablesHat check problem N个顾客进入一家酒店,把帽子给保管员。走的时候保管员随机把帽子还给顾客,请问多少个顾客可以拿回自己的帽子?假设XX为拿回自己帽子的顾客的数目。XiX_i为第ii个顾客拿回自己帽子的数目(等于概率)。有, X=X1+X2+...+XnX=X_1+X_2+...+X_n 关键在于,如何计算每个顾客拿回自己帽原创 2015-09-07 22:14:07 · 900 阅读 · 0 评论 -
广告点击率平滑
CTR 平滑在计算广告中,有时存在一些比较稀疏的数据,这时需要对这些数据进行平滑。例如,某个广告,只有三次浏览(Impression),0次点击(Click),那么点击率为0%?如果恰巧有一次点击,点击率为33%?显然这样不合理,这样的点击率预估就很不准确了。因此,我们需要一种可以对点击率平滑的方法。下面先介绍什么是BetaBeta分布。Beta 分布关于 BataBata 分布,可以参考这篇博文:原创 2017-07-04 20:34:17 · 1516 阅读 · 0 评论