随笔分类 - 基础知识
包括数据结构、算法、设计模式、C接口和实现、网络等。主要是为了毕业招聘复习……
摘要:论文地址:https://15721.courses.cs.cmu.edu/spring2018/papers/08-oltpindexes1/pugh-skiplists-cacm1990.pdf 关键点: 1、在算法内部引入随机性,从而避免对插入顺序随机性的依赖 2、如何插入和删除一个元素,同时
阅读全文
摘要:Given an array nums, we call (i, j) an important reverse pair if i < j and nums[i] > 2*nums[j]. You need to return the number of important reverse pai
阅读全文
摘要:一、设计模式的分类 设计模式主要分为三种类型: 1.1 Creational These design patterns are all about class instantiation or object creation. These patterns can be further categ
阅读全文
摘要:reference https://www.zhihu.com/question/20122137 感谢 @静海听风 @蓝形参 数据流有两个重要的参与者: 1、往流中写入数据者 2、从流中读取数据者 假设两个参与者之间,使用一个缓冲区来存放数据,即a往缓冲区中写入数据,b从缓冲区中读出数据。那么对单
阅读全文
摘要:今天benson老师的课程里面。留了一个问题。有一个宪哥主持的节目,里面有一个抽奖的环节。桌上放着三个扣住的碟子,已知其中一个盖有巨款,另外两个为空。现在,benson老师已经选择了其中一个,然后宪哥很嘚瑟的打开另外两个中的一个,为空。那么,请问现在benson老师是否应该换一个碟子呢?这个问题其实是很著名的三门问题的改版。那现在我们就来用贝叶斯定理来推推看,看benson老师是不是应该换一个碟子。情况一:假设宪哥知道哪个碟子里面藏有巨款。① 假设两个事件:A:benson选有奖B: 宪哥选无奖那么有:根据贝叶斯定理可推出:也就是说,在假设宪哥知道哪个碟子藏有巨款的情况下,benson老师原先
阅读全文
摘要:把字符串用后缀树的形式表现出来如下:a b c a b c a b c d e .substr[0]b c a b c a b c d e ....substr[1]c a b c a b c d e .......substr[2]a b c a b c d e ..........substr[3]b c a b c d e .............substr[4]c a b c d e ...............substr[5]a b c d e .................substr[6]b c d e ...................substr[7]c d
阅读全文
摘要:2013百度校园招聘数据挖掘工程师一、简答题(30分)1、简述数据库操作的步骤(10分)步骤:建立数据库连接、打开数据库连接、建立数据库命令、运行数据库命令、保存数据库命令、关闭数据库连接。经萍萍提醒,了解到应该把preparedStatement预处理也考虑在数据库的操作步骤中。此外,对实时性要求不强时,可以使用数据库缓存。2、TCP/IP的四层结构(10分)3、什么是MVC结构,简要介绍各层结构的作用(10分)Model、view、control。我之前有写过一篇《MVC层次的划分》二、算法与程序设计(45分)1、由a-z、0-9组成3位的字符密码,设计一个算法,列出并打印所有可能的密码组
阅读全文
摘要:logistic regression用于二分类的情况。即Y∈{0,1}。模型对于分布形式如下的样本:如果使用linear regression的话,可以拟合出一条类似下图的曲线:通过增加一个阈值,我们也可以做二分类,例如,假定阈值为0.5:那么,可以写成:但是这种方式在面对类似这样的数据分布时,会有问题:图中的回归线为了拟合到右边的3个奇异点而变得非常斜,这不是我们希望看到的。为此,我们为logistic regression另外提出了一种模型:linear regression的计算模型是:hθ(x)=θTxlogistic regression的计算模型是:hθ(x)=g(θTx)注意:
阅读全文
摘要:算法复习。时间复杂度:平均情况 O(n*log2n)最坏情况 O(n2)最好情况 O(n*log2n)思路:设待排序的数组为a,长度为n,起始i=0,j=n-1。对于每一轮快排:1、从右往左(j--的方向)查找到比key(一般设定为a[0])小的值,然后将a[i]与a[j]交换。2、从左往右(i++的方向)查找比key大的值,将a[i]与a[j]交换。3、一直执行1、2步骤,直到i>j。此时,key的左边为比key小的值,key的右边为比key大的值。然后再分别递归左半边array和右半边array。直到递归的终止条件(i>=j)满足,则停止递归。代码:#include <i
阅读全文
摘要:Sorting比较好的排序算法可以把时间复杂度控制在O(n*log2n),最糟的情况是O(n2).应该将sort当作一项基础处理,因为对于很多问题,当其数据变成sorted items时,解决起来会很容易。Stable Sorting对于key相同的元素,有时我们需要保持它们原先的顺序。但不幸的是,很少有快速算法是stable的。不过,我们可以将元素的位置作为第二参考量,当元素a.key = b.key时,原先位置小的仍然排在前面。选择排序(selection sort)选择排序就是将一个item list分为两部分,一部分是sorted,一部分是unsorted。每次都从unsorted的部
阅读全文
摘要:》》paper及文章《《 2020 https://www.usenix.org/system/files/conference/atc13/atc13-bronson.pdf (TAO) https://www.usenix.org/system/files/conference/nsdi13/n
阅读全文
摘要:前言这个系列是毕业找工作的复习笔记,希望可以和广大正准备毕业的童鞋一起打牢基础,迎接各种笔试……为了应付中英文笔试,关键词都用英文进行标注,这样就不怕面对英文题目了。之所以开始这一系列是因为之前在参加微软笔试的时候,被一道stable sorting的选择题给卡住了,才发现自己的基本功什么时候变得这么差了。既然要找工作就要好好复习,从最基础的开始。算法的部分来自《The Algorithm Design Manual》的笔记。结构特点二叉搜索树的特点是,小的值在左边,大的值在右边,即比如:这样的结构有一个好处是很容易获得最大值(Maximum)、最小值(minimum)、某元素的前驱(Prec
阅读全文