求解两个有序数组的中位数

问题: 给定两个有序数组a,b,长度都为n,求解两个有序数组中第K大的数。 分析: 对于所有的这种问题,我们首先想到缩减问题的规模,但是缩减后,求解对象依旧不变,保持一致性,我们首先找到彼此的中位数,判断中位数之间的大小,设a的中位数为x,b的中位数为y,如果x+y>k,那么所有b中的...

2012-10-28 23:23:21

阅读数:2205

评论数:0

协同过滤概述

还没看完博客,但是感觉非常不错,果断转载地址了: http://www.vanjor.org/blog/2011/05/rs-collaborative-filtering/ 协同过滤

2012-10-26 22:49:55

阅读数:1895

评论数:0

C#如何发布符合 .NET Framework 准则的事件

最近项目需要,需要用到.NET框架,C#,以前没有接触过,勉强学学,感觉还行,学习起来不是很难。 最近学校“事件”,其中经典的就是pub-sub模型,在.NET中,有一种方法叫做委托,关键字delegate,这种方式有点类似于接口,但是比借口更加灵活,因为delegate支持广播效果,重载了很多...

2012-10-23 13:38:11

阅读数:2249

评论数:0

求正整数n所有可能的和式的组合

题目: 给定一个数字n,求解出所有和为n的整数组合,要求组合按照递增方式展示,而且唯一。 分析: 最初看到这个题,没有什么特别好的思路,后来看了下别人的帖子,其实问题也没那么难,采用递归的方式进行求解,比如我们需要计算和为4的所有组合,我们首先将小于等于4的所有数字列出来 1,2,3,4 ...

2012-10-19 15:12:11

阅读数:4347

评论数:0

环形打印矩阵

问题: 环形打印矩阵,比如: 1    2   3  4 12 13 14 5 11 16 15 6 10  9   8  7 从外到内循环打印。 分析: 问题可以分解为4个问题,首先矩形向右走,到头后,再向下走,再向左走,最后向上走,如此循环,关键在于判断边界条件。 代码: ...

2012-10-18 23:21:22

阅读数:4136

评论数:0

关于两个鸡蛋判断楼层问题

问题: 经典的问题,给你两个鸡蛋,从100层楼上往下扔,从某个楼层开始,鸡蛋开始碎,请问最少扔多少次可以判断出楼层。 分析: 问题是经典的面试题,100层数据应该是14次,今天群里面同学给了一个解析解,(n+1)*n / 2这个通项解,直观上理解就是每次扔鸡蛋的楼层减1,第一次站在14楼扔,...

2012-10-18 19:42:02

阅读数:3830

评论数:0

跳表分析以及实现

题目: 实现链表的快速插入、查询、删除等操作 分析: 我们知道,如果只是通过简单的单链表,我们对单链表的插入、删除、查询操作都是O(n)的,这里需要用到一种特殊的数据结构——跳表,能够实现高速插入、删除、查找,平均时间复杂度能够达到O(logn)(具体分析,有很多人写了专门的文章,由于跳表是...

2012-10-15 11:08:29

阅读数:5291

评论数:0

八皇后问题-递归和迭代两种解法

问题: 经典的八皇后问题 分析: 递归解法直观易懂,但是迭代法需要想点思路 代码如下: /* * eightQueen.cpp * * Created on: 2012-10-14 * Author: happier */ #include using name...

2012-10-14 14:24:33

阅读数:5403

评论数:0

递归转换成非递归思路

问题: 非常经典的问题,将一个二叉树遍历,前序,中序,后序遍历由递归转换成非递归。 分析: 递归转换成非递归,一般解法是自己使用栈去模拟递归过程,首先我们来看下后序遍历递归解法: void postOrderTraverse(pNode root) { if(root == NULL)...

2012-10-14 12:54:03

阅读数:6507

评论数:0

KMP算法

题目: 经典的KMP算法 分析: 和KMP算法对应的是BF算法,其中BF算法时间复杂度,最坏情况下可以达到O(n*m),而KMP算法的时间复杂度是O(n + m),所以,KMP算法效率高很多。 但是KMP算法不太好理解,其中牵涉到next数组,目标就是让模式串尽可能的往右滑动,减少比较次数...

2012-10-09 11:11:52

阅读数:5787

评论数:2

大数相乘

题目: 大数据相乘,会出现溢出的那种 分析: 这种题目,现在网上有很多类似的题目,比如大数相乘,相加等,方法还是相似的,采用字符串模拟。 代码如下: /* * bigDataMulti.cpp * * Created on: 2012-10-7 * Author: h...

2012-10-07 13:26:41

阅读数:940

评论数:0

简单题-不用库函数,求解一个数字的平方根

题目: 如标题所示,不用平方根库函数,求解一个数字的平方根。 分析: 这个问题有两个思路: 思路1:采用二分的方式(无处不在的二分),上界初始化为数字本身,下界初始化为1,这样用二分,判断中间数字的平方和目标数字比较,再修改上界和下界,直到小于一定的阈值。 思路2:采用牛顿法(数值分析中...

2012-10-04 23:14:11

阅读数:6301

评论数:0

全排列—存在重复元素

问题: 全排列问题,但是存在重复元素,比如babc,求全排列,要求全排列不能包含重复串 分析: 由于存在重复元素,经典的全排列-递归方式不能达到题目要求,可以在原有全排列的基础上加入判断,还要对所有元素首先进行一次排序,具体代码如下: #include #include using n...

2012-10-04 18:51:18

阅读数:1318

评论数:0

调整数组顺序实现:奇数在偶数前面 以及 “奇偶奇偶”相间

问题: 问题一,需要重新排列数组,使得数组的奇数在前面,偶数在后面; 问题二,使得“奇偶奇偶”相间,时间复杂度为O(n)。空间复杂度是O(1)。 分析: 第一个问题,马上想到的就是用两个指针的方法,一个放在头,一个放在尾,同时往中间走,不符合条件,再交换头和尾。 第二个问题,没有什么好的...

2012-10-04 17:31:00

阅读数:1084

评论数:2

字典树数据结构

题目: 编写Trie树基本操作,包括插入,搜索,销毁 分析: 字典树,就是一棵26叉树(不考虑树的字符的大小写问题),在每个节点中加入计数器,表示从根节点到达当前节点的字符流表示一个字符串,代码如下: #include #include using namespace std; ...

2012-10-04 15:38:35

阅读数:3329

评论数:0

两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值

题目: 两个数组a[N],b[N],其中A[N]的各个元素值已知,现给b[i]赋值,b[i] = a[0]*a[1]*a[2]...*a[N-1]/a[i]; 要求: 1.不准用除法运算 2.除了循环计数值,a[N],b[N]外,不准再用其他任何变量(包括局部变量,全局变量等) 3.满足...

2012-10-04 14:34:07

阅读数:3378

评论数:3

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