自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bitcarmanlee的博客

https://github.com/bitcarmanlee/easy-algorithm-interview-and-practice 同步更新,欢迎star

  • 博客(20)
  • 收藏
  • 关注

原创 Rotate Array

ProblemRotate an array of n elements to the right by k steps.For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4]. How many different ways do you know to solve thi

2016-08-30 16:36:41 470

原创 字符串转整数

字符串转整数,也是一个经典的问题了。字符串转整数本身的逻辑很简单,难就难在各种特殊输入与特殊情况。所以,这不是一道考察算法的题,而是一道考察细节与编码习惯的题。我们考虑如下特殊情况: 1.输入为null或者为空字符串。 2.输入开头带空格的字符串。 3.输入带有正负号的数字。 4.数值范围超出最大正整数或者最小负整数。package edu.bit.algorithm;public clas

2016-08-29 18:28:23 1357

原创 java泛型通俗讲解

1.为什么需要泛型我们知道java是属于强类型编程语言。变量在使用之前,需要先进行定义,而定义个变量时必须要指定其数据类型,这样编译期在编译阶段就能将很多类型错误消灭在萌芽状态。如果我们有这样一个需求:定义一个坐标类。但是该坐标类的数据类型可能是整数,也可以能是小数,还有可能是字符串。举个例子

2016-08-27 17:26:31 5379 3

原创 Java中的可变参数使用

1.可变参数的定义从JDK1.5之后,java就提供了变长参数(variable arguments,varargs)。我们在定义方法的时候,可以使用不确定个数的参数。对于同一个方法,也可以通过不确定参数个数的方式进行重载。首先来看个最简单的例子:public void printArray(String... args) { for(int i=0; i<args.length; i++)

2016-08-26 18:12:12 9255 1

原创 泊松分布的前世今生

1.初见泊松分布Poisson distribution,翻译成中文名为泊松分布、普阿松分布、帕松分布、布瓦松分布、布阿松分布、波以松分布、卜氏分配等,是概率与统计学中一种常见的离散概率分布,常用来描述单位时间内随机时间发生次数的概率分布。若随机变量XX服从参数为λ\lambda的泊松分布,则可以记为X∼π(X)X \sim \pi(X),或者X∼P(X)X \sim P(X)。其中,参数λ\lam

2016-08-24 11:11:34 12029 2

转载 RTB竞价中的cookie mapping技术

首先通过一些关键词解释普及或者回顾一下背景,ADX:Ad exchange的简称。一般特指Ad exchange平台模块 DMP:Data Management Platform的简称。DMP存储了流量、受众的各种特征信息。 DSP:Demand Side Platform的简称。可以看做流量的购买方,为广告主服务。广告主可以通过DSP购买流量,达到营销的目的。DSP可以接入ad exchang

2016-08-21 21:57:52 1979

原创 用户特征工程 超详细解读

在网上找到了美团一位叫付晴川同学些的ppt,里面有一幅描述用户特征工程的图,感觉总结得还是比较到位的。现在把图片贴出来: 这张图将用户特征工程里的大面基本都囊括了。因为ppt本身做得比较简单,现在我们试图针对图里的每一项,结合具体的业务场景,做个比较详细的分析。1.特征提取,或者说原始数据提取原作者画图的时候将第一项命名为特征提取,我觉得作者想表达的本意应该是从哪获得相关数据,所以叫原始数据提取可

2016-08-18 19:43:32 35752 1

转载 漫谈Clustering:高斯混合模型(GMM)

上一次我们谈到了用 k-means 进行聚类的方法,这次我们来说一下另一个很流行的算法:Gaussian Mixture Model (GMM)。事实上,GMM 和 k-means 很像,不过 GMM 是学习出一些概率密度函数来(所以 GMM 除了用在 clustering 上之外,还经常被用于 density estimation ),简单地说,k-means 的结果是每个数据点被 assign

2016-08-15 11:34:56 9583

原创 洗牌(shuffle)问题详解

打扑克牌,打麻将的时候,都会有洗牌这个动作。洗牌问题其实很简单,如果有一个数组中有n个元素,怎样设计一个洗牌(shuffle)算法保证随机性。最简单的思路自然是新建一个新数组,每次从原数组中剩下的元素随机挑选一个放入新数组,知道原数组为空。考虑一下这种方式的随机性。一个元素shuffle以后位于第一个位置的概率为1n\frac{1}{n},即第一次被抽中。 出现在第二个位置的概率为: p=p(第

2016-08-14 22:16:42 6150

原创 最大似然估计MLE与贝叶斯估计

上大学学习数理统计这门课程的时候,没有特别用心。说实话统计学还是挺枯燥的,而且当时也没有太多的学习意识,不知道为什么要学这些貌似八竿子打不着的东西。现在想想,当时真是too simple,sometimes naive啊。。等到越往后面深入,发现需要用的数学知识尤其是统计学知识越来越多,因为现在机器学习里发展最成熟应用最广泛的一部分就是统计机器学习,自然离不开统计学的方方面面。而且随着研究的逐步深入

2016-08-13 21:44:17 27267 10

原创 独立同分布(iid)随机变量的一些趣题

在概率论中,一组独立同分布的随机变量x1,x2,⋯,xnx_1,x_2,\cdots,x_n出现的频率很高。本文特意为大家整理一下与一组独立同分布的随机变量x1,x2,⋯,xnx_1,x_2,\cdots,x_n相关的一些有意思的小问题。1.Case1已知随机变量x1,x2,⋯,xnx_1,x_2,\cdots,x_n相互独立且同分布,方差为σ2\sigma^2,y=1n∑n1xiy = \frac

2016-08-13 15:32:57 19476 1

原创 从泰勒展开到牛顿迭代

1.泰勒公式(Taylor’s Formula)对于一些复杂的函数,为了方便研究与分析,我们往往希望用一些简单的函数来近似表达。其实这也符合人们对事物的认知规律与认知曲线:有浅入深,由易到难,前面研究的比较容易的部分往往是后面推广结论的特例。在比较简单的函数中,多项式算是最简单的一种了。因为多项表达式只有比较简单的加减乘除四则运算,便能求出函数的值。所以,用多项式表达复杂函数往往是我们的首选。给出泰

2016-08-12 21:43:23 11217 3

原创 用牛顿迭代求方根

1.前言各种编程语言中都有实现求一个数方根的函数,即sqrt函数。但是,如果不用sqrt函数,只用四则运算让求一个数的方根,该怎么办勒?换句话说,让你自己实现sqrt函数,你能实现么?OK,各位最好先自己想想然后动手实现以下。如果遇到了困难,欢迎接着往下阅读本文。2.用二分的思想二分法是非常好用的套路。对于各种快速查找还有迭代类的运算都是一把好手。而且复杂度只有logn\log n。这里我们也可以采

2016-08-12 18:15:51 1974

原创 链表常见操作java实现二:反转链表,从尾到头倒序遍历

1.反转链表反转链表在面试中非常常见。例如: 将原链表: 0->1->2->3 反转为新链表: 3->2->1->0 反转链表的一般思路是使用三个指针。其中,一个指针为当前节点,一个指针指向当前节点的下一个节点,另外一个节点则指向新链表表头从而保存结果。public class Reversed_MyLinkedList { public static Node reversed_l

2016-08-08 22:40:06 13639

原创 链表常见操作java实现一:链表初始化,求链表长度

1.前言链表是一种非常基础也非常重要的数据结构,在实际中使用非常广泛,也是各种面试里特别容易出现的类型。尤其在各大IT公司的校招中,不管笔试还是面试,链表几乎都是必出现的题型。因此不管从实际工作场景中,还是在找工作的过程中,熟练掌握链表的相关操作都显得非常重要。看看wiki里给链表的介绍: 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在

2016-08-08 20:24:27 21619

原创 FM算法详解

1.FM背景在计算广告中,CTR预估(click-through rate)是非常重要的一个环节,因为DSP后面的出价要依赖于CTR预估的结果。在前面的相关博文中,我们已经提到了CTR中相关特征工程的做法。对于特征组合来说,业界现在通用的做法主要有两大类:FM系列与Tree系列。今天,我们就来讲讲FM算法。2.one-hote编码带来的问题FM(Factorization Machine)主要是为了

2016-08-07 18:02:06 66470 11

转载 CTR点击率预估实战分享

1.指标广告点击率预估是程序化广告交易框架的非常重要的组件,点击率预估主要有两个层次的指标: 1.排序指标。排序指标是最基本的指标,它决定了我们有没有能力把最合适的广告找出来去呈现给最合适的用户。这个是变现的基础,从技术上,我们用AUC来度量。2.数值指标。数值指标是进一步的指标,是竞价环节进一步优化的基础,一般DSP比较看中这个指标。如果我们对CTR普遍低估,我们出价会相对保守,从而使得预算花不

2016-08-06 22:19:53 25540

原创 CTR预估算法小结

1.常用的CTR方法常用的ctr预测的算法包括LR(Logistic Regression), FM(Factorization Machines), GBDT等等。像LR和GBDT, Spark Mllib都提供了相应的实现,另外台湾大学的Liblinear也有一个Spark版本的LR算法的实现。Mllib的LR是基于LBFGS的实现,而Liblinear是基于TRON的实现。实际当中我们测试过

2016-08-06 21:37:26 15352 1

转载 LDA入门浅谈

1.什么是主题模型在我的博客上,有篇文章《基于双数组Trie树的Aho Corasick自动机极速多模式匹配》被归入算法目录,算法即为该文章的主题。而该文章因为涉及到中文分词,又被我归入了分词目录。所以该文章的主题并不单一,具体来说文中80%在讲算法,20%稍微讲了下在分词中的应用。传统的文本分类器,比如贝叶斯、kNN和SVM,只能将其分到一个确定的类别中。假设我给出3个分类“算法”“分词”“文学”

2016-08-03 11:38:09 12621 1

原创 kmeans算法详解与spark实战

1.标准kmeans算法kmeans算法是实际中最常用的聚类算法,没有之一。kmeans算法的原理简单,实现起来不是很复杂,实际中使用的效果一般也不错,所以深受广大人民群众的喜爱。 kmeans算法的原理介绍方面的paper多如牛毛,而且理解起来确实也不是很复杂,这里使用wiki上的版本: 已知观测集(x1,x2,⋯,xn)(x_1,x_2,\cdots,x_n),其中每个观测都是一个dd维实矢

2016-08-02 10:59:01 20202 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除