- 博客(25)
- 资源 (8)
- 收藏
- 关注
原创 树的子结构
题目描述输入两颗二叉树A和B,判断B是不是A的子结构,九度题目描述如下:题目描述:输入两颗二叉树A,B,判断B是不是A的子结构。输入:输入可能包含多个测试样例,输入以EOF结束。对于每个测试案例,输入的第一行一个整数n,m(1<=n<=1000,1<=m<=1000):n代表将要输入的二叉树A的节点个数(节点从1开始计数),m代表将要输入的二叉树B的节点个数(节点从1开始计数)。接
2013-06-30 23:45:09 2795 3
原创 PHP设计模式——责任链模式
概述责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态的重新组织和分配责任UML图描述一个简单责任链模式的实现责任链模式涉及到的角色
2013-06-27 17:37:43 2254
原创 信息检索导论学习笔记(3)——词典及容错式检索
词典搜索的数据结构如上图,倒排索引记录表构建好了。对于查询请求“Brutus”,我们首要任务是确定查询词项“Brutus”是否在词典的词项词汇表中,如果在,则返回该词项对应的倒排记录表的指针。词汇表的查找操作往往采用一种称为词典(dictionary)的经典数据结构,并且主要有两大类解决方法:哈希表方式和搜索树方式哈希表方式每个词项通过哈希函数映射成一个整数,映
2013-06-25 21:48:27 3400
原创 PHP设计模式——策略模式
概述策略模式属于对象的行为模式。其用意是针对一组算法,将每个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化UML图策略模式中主要角色这个模式设计到三个角色:环境角色(Context):持有一个Strategy的引用抽象策略(Strategy)角色:这是一个抽象角色
2013-06-25 11:47:59 2426
原创 PHP设计模式——状态模式
前言2年多我在项目中用到最多的设计模式就是状态模式,这里记录一下定义状态模式,又称状态对象模式(Pattern of Objects for State),状态模式就是对象的行为模式。状态模式允许一个对象在其内部状态改变的时候改变其行为。这个对象看上去就像是改变了它的类一样UML图状态模式中主要角色抽象状态角色(State):定义一个接口或抽
2013-06-24 17:35:14 2607
原创 UML类图
前言用php开发两年多了,准备也写一下平时常用的设计模式,都是基于自己的实践经验,当然,用设计模式之前首先要看懂设计模式,因此这里首先讲解一下UML类图。通过UML类图,能更好的和大家交流,也能很容易就表达出自己的设计想法UMLUnified Modeling Language(UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统
2013-06-24 07:34:23 2983 2
原创 PHP面向对象——接口和多态性
前言今天查看本科生c++试卷的时候,发现还是有同学学习过c++之后,却对面向对象的3大特性都不了解,这里用php解释一下接口和多态性,也当作是一种自我学习吧接口PHP类是单继承,也就是不支持多继承,当一个类需要多个类的功能时,继承就无能为力了,为此PHP引入了接口技术如果一个抽象类里面的所有方法都是抽象方法,且没有声明变量,而且接口里面所有的成员都是public权限
2013-06-20 20:20:13 4037
原创 骰子点数的概率
题目题目描述:把n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。输入:输入包括一个整数N(1<=N<=1000),代表有N个骰子。输出:可能有多组测试数据,对于每组数据,按照Sample Output的格式输出每一个可能出现的和S的概率。前言这道题目在《剑指offer》上有原题,但是感激它上面分析的有些浅,起码连这个题目属于哪
2013-06-20 13:54:54 3762 2
原创 c中使用malloc动态申请二维数组
前言今天写代码的时候,想要动态的申请一个二维数组空间,思索了一段时间才写出来,这里记录一下吧,以后就不至于再浪费时间了。下面以申请int型数组作为例子:申请一维数组一维数组的数组名可以看成数组起始元素的首地址,因此我定义一个int *arr的指针,分配n个大小的int型空间,写法如下:#include #include int main(void){ in
2013-06-20 13:40:40 19298 9
原创 B树
用阶定义的B树B树又叫平衡多路查找树。一棵m阶的B树的特性如下:树中每个结点最多含有m个孩子(m >= 2)除根结点和叶子结点外,其它每个结点至少有ceil(m / 2)个孩子(ps:ceil(x)取x的上整数)若根结点不是叶子结点,则至少有2个孩子(特殊情况:没有孩子的根结点,即根节点为叶子结点,整棵树只有一个根结点)所有叶子都出现在同一层每个非终端结点中包含有n个关键字信息:(
2013-06-18 11:22:05 4096 4
原创 找出两个只出现一次的数
前言周末和大学的几个伙计聚了一下,很开心,大家都很懂事而且都在努力,已经有两年硕士毕业去雅虎的,薪资待遇更是没得说,哈哈,聊得很开心,不过周末没怎么写代码,这里在九度oj水几道题,顺便记录一下(ps:貌似这个题目之前有记录过,不管了)题目题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。输入:输入的第一行包括一个整数N(
2013-06-17 00:36:22 2161
原创 2路插入排序算法
前言今天给实验室的几个师妹讲解2路-插入排序算法,在直接插入排序算法的基础上增加了一个辅助数组,其目的是减少排序过程中的移动次数,需要增加n个记录的辅助空间。难点可能在于对取余的考虑吧,可以把辅助数组看成一个环状空间,这样就能更好的理解辅助空间中最大值和最小值的位置了再说一下,网上的很多2路插入排序代码错误百出,我都在想,这些贴出代码的人有没有实际运行过啊思
2013-06-13 21:52:17 5835 5
转载 一致性哈希算法
转载声明这篇文章是直接参考张洋的博客,我重写一遍也是边做边进行更深入的理解,参考链接:http://blog.codinglabs.org/articles/consistent-hashing.html摘要本文将会从实际应用场景出发,介绍一致性哈希算法(Consistent Hashing)及其在分布式系统中的应用。首先,本文会描述一个在日常开发中经常会遇到的问题场景,借此介
2013-06-13 18:24:38 2999 3
原创 翻转单词顺序
前言题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。例如输入字符“student. a am I”,输出为"I am a student.".这个题目很常见,据说很多公司都多次拿来作面试题目。这里主要是因为网上很多相关代码都是照抄何海涛的《剑指offer》,c++风格的代码无法接受,所以这里贴出我的ac代码思路这个题目的思路比较简单,分两步即可:
2013-06-13 00:15:36 2857 4
原创 三分搜索算法
前言今天本来应该看《信息检索导论》的,但是早上在九度oj做题目的时候碰到一个很有意思的题目,需要用到三分搜索算法。大家都知道二分搜索算法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数具有凹凸性时,二分搜索就无法使用了(当然可以先排序),这里介绍一种新的方法,三分查找算法,适应的函数图形如下:算法思想1. 与二分查找算法类似,先取整个区间的中间
2013-06-11 16:58:11 9717 3
原创 信息索引导论学习笔记(1)——布尔检索
信息检索信息检索(Information Retrieval,简称IR):从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)中找出满足用户信息需求的资料(通常是文档)的过程信息检索按照规模分类:以web搜索为代表的大规模级别小规模级别,典型示例为个人信息检索中等规模级别,面向企业、机构和特定领域的搜索倒排索引顺序扫描:这种线性扫描就是一种
2013-06-09 17:49:40 2795
原创 robot禁止搜索引擎收录的方法
robots.txt文件搜索引擎使用sphider程序自动访问互联网上的网页并获取网页信息。sphider在访问一个网站时,会首先检查该网站的根目录下是否有一个叫做robots.txt的纯文本文件,这个文件用于指定sphider在您的网站上的抓取范围。您可以在您的网站上创建一个robots.txt,在文件中声明该网站中不想被搜索引擎收录的部分或者指定搜索引擎只收录特定的部分
2013-06-09 14:49:31 3974
原创 信息检索导论学习笔记(2)——词项词典及倒排记录表
回顾构建倒排索引的主要步骤收集待建索引的文档对这些文档中的文本进行词条化对第二步产生的词条进行语言学处理,得到词项根据词项对所有文档建立索引所谓词条化(tokenization):将原始的字符流转换成一个个词条(token)的过程文档分析及编码转换生成字符序列语言识别,编码方式识别,文件格式等处理,生成字符序列文档单位的选择合理的选择“索引粒
2013-06-08 22:00:14 5178
原创 析取范式
前言最近真正的想去做搜索引擎的研究了,本身我已经将算法导论上基本的数据结构和算法都掌握了,再加上平常练习acm,感觉自己具备了投身搜索的一些前提条件,本身我也是好联系黄页搜索的主要负责人,现在搜索做成那个样子跟我自己的搜索水平有脱不开的关系,所以《信息检索导论》开始看起,遇到之前的一些数学知识,有些遗忘,这里回顾一下,大部分都是从百度百科总结的,没神马技术含量,纯粹是我的回顾笔记概
2013-06-08 15:16:44 14104 1
原创 最大连续子序列
题目题目描述: 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。现在增加一个要求,即还需要输
2013-06-07 14:15:29 2017
原创 二叉树中和为某一值的路径
题目题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。输入:每个测试案例包括n+1行:第一行为2个整数n,k(1<=n<=10000),n表示结点的个数,k表示要求的路径和,结点编号从1到n。
2013-06-06 15:21:53 1978
原创 /bin/mv:参数列表过长
前言自己实现了一套线上数据库增量备份的方案,每天只备份增量数据库db(ps:线上大概有30多万个数据库)。但是突然有一天,用户活跃度猛增,一天竟然有20多万数据库需要备份,当然原因我已经查明(商业关系不做详细说明),但是引起的问题是我在mv 20多万sql文件的时候出现了 /bin/mv:参数列表过长的错误解决方法用find命令替代原始的mv操作find 源文件路径
2013-06-06 14:46:13 9512
原创 Linux netstat命令
前言linux下学习一个命令,首先man一下:netstat命令,用于显示网络相关信息,如网络连接,路由表,接口状态(interface statistics), masquerade 连接,多播成员(multicase memberships)等等。netstat信息执行netstat,其输出结果为:从整体上看,
2013-06-05 12:34:12 2227
原创 合唱队形
前言又是一道动态规划题目,开始走了弯路,以为是简单的最长公共子序列题目,没深入分析,然后各种两边分别求最长公共子序列,然后就没有然后了题目题目描述:N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,
2013-06-04 17:48:30 3959
原创 0-1背包问题
前言0-1背包问题,动态规划的经典题目,在九度oj上ac将近230道题目后感觉还是动态规划的题目最具有挑战性,因为每个题目你都需要自己描述最优解的结构,自己去递归定义最优解。这个很有难度,但是征服有难度的题目本身就是对自己的提高!问题描述我们有n种物品,物品j的重量为wj,价格为pj。我们假定所有物品的重量和价格都是非负的。背包所能承受的最大重量为W。如果限定每种物品只能选择0
2013-06-02 23:52:54 1795
windows scoket编程
2011-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人