自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 动态规划解花费最小的购物方法

2009-05-30 22:08:00 4674 5

原创 动态规划解最长公共子序列问题

动态规划法 经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加。 为了节约重复求相同子问题的时间,引入一个数组,不管它们是否对最终解有用,把所有子问题的解存于该数组中,这就是动态规划法所采用的基本方法。【问题】 求两字符序列的最长公共字符子序列 问

2009-05-30 21:28:00 186056 62

原创 面试题精选(73):求内积最大的字数组

据说这是一道Google的面试题。在网上看到有些人在讨论这道题目,但能给出正确算法的人并不多。问题描述:有两个长度均为n的整数数组A和B,现在要从这两个数组中各抽出s个数字,分别构成两个新的数组C和D,要求数组C和D的内积最大。即已知:A=[a1,a2,...,an],B=[b1,b2,...,bn];求:C=[c1,c2,...,c5],D=[d1,d2,...,d5];满足:c1,..

2009-05-30 15:40:00 4177 1

原创 算法导论之堆排序(堆排序、n*lgk 归并、杨氏矩阵)

堆排序实现:#define LEFT(i) (2*i)#define RIGHT(i) (2*i+1)#define PARENT(i) (i/2)template void heap_print(T seq[],int n){    int h=floor(log(double(n))/log(2.))+1;    for(int i=1;i    {        for(int j=

2009-05-29 22:49:00 2574 1

原创 面试题精选(72):设计含min函数的队列

题目描述:设计一FIFO的队列,要求包含min函数,而且其push_back(),pop_front(),get_min()操作的时间复杂度为O(1),空间复杂度为O(n)。 思路:暂时没有想出完美的解法,但思路可参见“程序员面试题精选(2):设计包含min函数的栈”http://blog.csdn.net/yysdsyl/archive/2007/10/24/1841644.

2009-05-28 21:02:00 1615

原创 几类面试题的思考与总结

1、从N个数里选最XX的K个这个问题是问得最多的。一般情况下K会远小于N。这道题有两个思路,一是参照快速排序的思想,递归地划分,直至找到左边的K个。快排在最坏的情况下,是会退化为平方的,所以要加上随机化。即使不随机化,也有些比较复杂的算法保证复杂度不会很高,可以参照《算法导论》里求第K大的数的算法。如果答出这个算法,估计面试官都佩服你。另一个思路,则比较保险,维护一个堆,里面存K个数,考察下一

2009-05-28 02:28:00 1797

原创 面试题精选(71):倒水倒油类算法

题目描述:一个桶中有12斤油,要求倒出6斤,可现在另外只有两个桶,分别可装8斤与5斤,请问应如何来倒?  思路:广度优先搜索  c#代码:        private void button5_Click(object sender, EventArgs e)        {            //初始状态和结束状态            int[] b

2009-05-27 22:35:00 2317

原创 面试题精选(70):100人民币问题

题目描述:用1元,2元,5元,10元,20元和50元的纸币组成100元,共有多少种情况。 要求输出总方案数和每种方案中各纸币的个数。 ////////////////////////////4562种 代码:背包解法: #include using namespace std;#define N 6int w[N];int number_used[N];//bo

2009-05-25 20:17:00 2002

原创 面试题精选(69):求最大重叠区间大小

题目描述:请编写程序,找出下面 “ 输入数据及格式 ” 中所描述的输入数据文件中最大重叠区间的大小。 对一个正整数 n ,如果 n 在数据文件中某行的两个正整数(假设为 A 和 B )之间,即 A =n>=B ,则 n 属于该行;如果 n 同时属于行 i 和 j ,则 i 和 j 有重叠区间;重叠区间的大小是同时属于行 i 和 j 的整数个数。 例如,行( 10 20 )和( 12 25 )的重叠

2009-05-25 19:11:00 3341 1

原创 临近数求解

[问题描述]    问题1. 计算正数num1的上临近数num2,num2满足:       (1) num2 > num1;        (2) num1、num2各位数字之和相等(十进制表示);        (3) num2是满足(1)、(2)条件的最小正数     问题2. (另一个相似问题) 计算正数num1的下临近数num2,num2满足(注意一个数的下临近数可能

2009-05-23 19:23:00 1706 3

原创 区间模糊排序

问题描述     考虑这样的一种排序问题,即无法准确地知道待排序的各个数字到底是多少。对于其中的每个数字,我们只知道它落在实轴上的某个区间内。亦即,给定的是n个形如[a(i), b(i)]的闭区间(这里小括后起下标的作用,后同),其中a(i) ,使得存在一个c(j)属于区间[a(i(j)), b(i(j))],满足c(1) a) 为n个区间的模糊排序设计一个算法。你的算法应该具有算法的

2009-05-23 17:18:00 1683 2

原创 面试题精选(68):计数排序的原地排序

问题描述     假设n个记录中每一个的关键字都界于1到k之间。说明如何修改计数排序,使得可以在O(n+k)时间内对n个记录原地排序。除输入数组外,可以另用O(k)的存储空间。你给出的算法是稳定的吗? 算法思想     修改基本的计数排序算法,实现原地排序。由于不再使用辅助空间来存放排序结果,因此只能通过对原数组的元素进行置换,以完成排序。由于是使用置换完成排序,因此算法不

2009-05-23 16:53:00 1957

原创 面试题精选(67):1.。。。n中'1'出现的次数

【问题描述】(1)对于一个整数n,写一个函数f(n),使得它返回1到n之间的所有自然数(十进制数表示)中出现的‘1’的次数。例如,对于n=13,自然数1,2,3,4,5,6,7,8,9,10,11,12,13中‘1’出现的次数为6,所以f(13) = 6。(2)找出满足f(n)=n的最大n值。【问题分析】这个问题在《编程之美》中有所讨论,虽然最终给出了正确答案,但解答过程并不严谨。另外,对于第二个

2009-05-23 15:48:00 4113

原创 面试题精选(66):整数的素数和分解问题

【问题描述】歌德巴赫猜想说任何一个不小于6的偶数都可以分解为两个奇素数之和。对此问题扩展,如果一个整数能够表示成两个或多个素数之和,则得到一个素数和分解式。对于一个给定的整数,输出所有这种素数和分解式。注意,对于同构的分解只输出一次(比如5只有一个分解2 + 3,而3 + 2是2 + 3的同构分解式)。例如,对于整数8,可以作为如下三种分解:(1) 8 = 2 + 2 + 2 + 2(2) 8 =

2009-05-23 15:33:00 1955

原创 面试题精选(65):迷宫最优解的宽度优先解法

【问题描述】有一个用矩阵描述的迷宫,矩阵元素取值0或1(0表示可以进入,1表示不能进入)。现在要找到一条从最左上角到最右下角的最短路径(最左上角和最右下角的矩阵元素均为0)。比如,对于如下4*4矩阵描述的迷宫:0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0,0, 1, 0, 0,0, 0, 0, 0它的最短路径为8(路径上所有位置数),移动方向依次为:右、右、右、下、下、下、

2009-05-23 15:23:00 2149

原创 面试题精选(64):元素可重复组合算法

可重复组合问题是指,在计算(生成)组合时可以允许元素重复的一类组合问题。例如,对于有四个元素的集合{a, b, c, d},其可重复组合C(4, 3)有20个:aaa, aab, aac, aad, abb, abc, abd, acc, acd, add, bbb, bbc, bbd, bcc, bcd, bdd, ccc, ccd, cdd, ddd。用P(n, k)表示从n个元素中选出k个元

2009-05-23 15:01:00 5060 1

原创 面试题精选(63):排列算法

全排列算法有两个比较常见的实现:递归排列和字典序排列。(1)递归实现从集合中依次选出每一个元素,作为排列的第一个元素,然后对剩余的元素进行全排列,如此递归处理,从而得到所有元素的全排列。算法实现如下:#include #include using namespace std;template void CalcAllPermutation_R(T perm[], int first, int nu

2009-05-23 14:50:00 1363

原创 面试题精选(62):组合算法

计算一个集合的组合,最直观的方式是使用递归:首先选择一个元素,然后在剩下的集合中选择其余元素。代码实现也很简单,下面的代码计算集合的所有可能的组合(一个或多个元素):#include #include #include #include using namespace std;template void CalcCombination(const ElemType elements[], int

2009-05-23 13:21:00 1206

原创 面试题精选(61):打印可能的出栈序列

题目:如何求入栈顺序为1234……N的序列的所有可能的出栈序列?  代码:递归求解 #include #include using namespace std;void print(vector& v){ cout<<endl; for(int i=0;i<(int)v.size();i++) { cout

2009-05-20 14:40:00 2335 2

原创 贪心法解一个数组交集问题

题目:假设有n个数组a[m],(可以看作a[n][m]) a[m]表示一个分成m段的物体的每段的状态, a[m]的元素值为0或1,0表示这段不可用,1表示可用 则a[m]表示的物体可用的部分等于所有1的和, 为s(a[m])=A 求一个公共解b[m], 假定其和为s(b[m])=B 如果a[m]包含b[m],也就是b[m]是a[m]的子集, 则a[m]中的b[m]部分可以使用, 其和等于b[m

2009-05-20 13:49:00 898

原创 微软4道面试题

题目:(1) 一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。 请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。 注意: - 5个数值允许是乱序的。比如: 8 7 5 0 6 - 0可以通配任意数值。比如:8 7 5 0 6 中的0可以通配成9或者4 - 0可以多次出现。 - 复杂度如果是O(n2)则不得分。

2009-05-19 20:56:00 1616 4

原创 位图法应用

一、给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中 申请512M的内存 一个bit位代表一个unsigned int值 读入40亿个数,设置相应的bit位 读入要查询的数,查看相应bit位是否为1,为1表示存在,为0表示不存在   二、使用位图法判断整形数组是否存在重复  判断集合中存在重复是常见编

2009-05-19 14:13:00 1536 2

转载 腾讯的一道面试题

题目:1分钟内用户上线的数目是60万,如果用户在5分钟内重复上线,就给他发警告,问如何设计?考虑:要判断用户是否在5分内重复上线,那么至少要(也只需要)保存距当前时刻5分钟内的登录用户的信息(只要简单的ID)           从这个开始出发,需要考虑的问题为2个:           1.如何在迅速判断用户是否在保存的数据中 (这个理所当然想道用hash)           2. 如果把过期

2009-05-19 13:20:00 1234

转载 详细解说STL hash_map系列

0 为什么需要hash_map 用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改: 岳不群-华山派掌门人,人称君子剑张三丰-武当掌门人,太极拳创始人东方不败-第一高手,葵花宝典...这些信息如果保存下来并不复杂,但是找起来比较麻烦。例如我要找"张三丰

2009-05-18 19:02:00 753

转载 QQ找茬辅助工具的制作

QQ找茬辅助工具的制作 转载请注明出处:http://www.cppblog.com/greatws/archive/2009/05/05/81996.html这段时间GF一直在玩QQ找茬,看了一下,原理很简单,就是找到2附图片的不同之处,那么程序的思路也就很明了了,就是抓图,存入buffer,比较,显示,这么一个过程。闲话不多说了,下面我用MFC来实现它。首先先要拿到QQ找茬从窗口的句柄,拿

2009-05-07 09:46:00 1195

空空如也

空空如也

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

TA关注的人

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