Algorithm
文章平均质量分 71
wangran51
这个作者很懒,什么都没留下…
展开
-
Fast implementation/approximation of pow() function in C/C++
老外的帖子Sure - it's easy if you have exponential and natural log functions.Sincey = x^n, you can take the natural log of both sides:ln(y)= n*ln(x)Then taking the exponential of both sides gives ...2013-03-29 16:42:00 · 71 阅读 · 0 评论 -
腾讯附加题
给定一个数组a[N],我们希望构造数组b [N],其中b[j]=a[0]*a[1]…a[N-1] / a[j],在构造过程中,不允许使用除法:要求O(1)空间复杂度和O(n)的时间复杂度;除遍历计数器与a[N] b[N]外,不可使用新的变量(包括栈临时变量、堆空间和全局静态变量等) 解析:设b[0]=1由b[i]=b[i-1]*a[i-1]可得b[1] = a[0]b[2...2013-04-22 14:08:00 · 96 阅读 · 0 评论 -
求全排列问题
基本思路就是: 1、判断是否到达数组末尾,若是,输出数组,返回。 2、否则依次取出片段数组的每个元素,对剩下的元素组成的片段数组再进行排列。注意,生成第二步的剩余片段数组的技巧是将每个元素与片段首个元素互换,这样首个元素之后到数组末尾的连续元素 就是 剩余片段数组——当然,互换完了还要互换回来,否则 第二步的剩余片段数组 的内容就会混乱。#include<stdio.h...2013-04-23 13:10:00 · 66 阅读 · 0 评论 -
集合合并
百度面试题:将多个集合合并成没有交集的集合2010-03-20 18:25给定一个字符串的集合,格式如:{aaa bbb ccc}, {bbb ddd},{eee fff},{ggg},{ddd hhh}要求将其中交集不为空的集合合并,要求合并完成后的集合之间无交集,例如上例应输出{aaa bbb ccc ddd hhh},{eee fff}, {ggg}。(1)请描述你解决这个问题...2013-04-23 16:42:00 · 267 阅读 · 0 评论 -
阿里Set
上次面阿里巴巴。面试官问了我这样一个问题,“C++ STL中的set是如何实现的”。当时只答了二叉树,回来查下书,原来一般是红黑树,后悔没好好记住啊。。。接着,面试官又考了我一道这样的编程题:定义一个Student结构体,包括name和age等数据,要求编程实习在set中查找一个name == "张三",age == 13的操作。本来set自己用得不多,当时一下懵了。回来查阅《C+...2013-04-23 17:16:00 · 65 阅读 · 0 评论 -
腾讯猜字游戏
A、B两人玩猜字游戏,游戏规则如下:A选定一个 [1,100]之间的数字背对B写在纸上,然后让B开始猜;如果B猜的偏小,A会提示B这次猜的偏小;一旦B某次猜的偏大,A就不再提示,此次之后B猜的偏小A也不会再提示,只回答猜对与否。请问:B至少要猜( )次才能保证猜对?在这种策略下,B第一次猜测的数字是( )。<wbr></wbr>首先阅读题目,一...2013-04-24 10:27:00 · 180 阅读 · 0 评论 -
google玻璃球
有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层?? 解题思路: 假如只有一个球,那很显然,只有一个办法:从第一层开始投,如果没碎再试第二层、第三层..... 现在有两个球,我们应该利用第一个球缩小临界楼层所在的楼层范围,可能会想到第一个球先从50层开始投,如果碎了,再用最后一...2013-04-24 10:44:00 · 98 阅读 · 0 评论 -
amazon笔试题
1.判断一年是否为闰年的方法 2.非递归实现exists方法 template <class T> class BinaryTree{ protected: T* _data; BinaryTree<T> * _left; BinaryTree<T> * _right; }; template <class T> class BST:public B...2013-04-24 14:29:00 · 147 阅读 · 0 评论 -
字符串面试题
一般面试字符串的题目分四种:1, 基本运算(求长度,连接,比较)2. 格式转换(atoi, itoa) 3.字符串翻转 4. 模式匹配。1. 基本运算a.赋值操作函数原型:int StrAssign(const char *s, char *t)函数说明:将s的内容付给t函数定义:int StrAssign(const char *s, char *t){<wbr&...2013-04-25 15:45:00 · 82 阅读 · 0 评论 -
amazon题代码
First Phone Interview: 1.提出尽可能多的方法使一个method可以返回多个不同type的值 2.reverse string 比如 "I have a dream" -> "dream a have I" 3.判断一个binary tree是不是对称的 Second Phone Interview: 1.给a list of number,返回前top K个(内...2013-04-25 16:01:00 · 203 阅读 · 0 评论 -
求一个字符串中连续出现次数最多的子串
http://blog.csdn.net/imcdragon/article/details/6838565解答二http://hi.baidu.com/icyday315/item/040aadab454c8a97151073da合并思路(不能重复abcdabcd 就不行了,abcda是最长重复子串) /*Author:McdragonDate:15-07-1121:17...2013-04-26 10:08:00 · 289 阅读 · 0 评论 -
哈希表等概率情况下查找成功和查找不成功的平均查找长度的计算
最近复习了下数据结构中的哈希表,发现在计算等概率情况下查找不成功的平均查找长度时比较迷茫,不知道到底是怎么计算出来的。现在通过查阅资料终于知道如何计算了,所以记录下来以供以后查阅。下面看下2010年2010年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合试题中一个考哈希表的题。Question1:将关键字序列(7、8、30、11、18、9、14)散列存储到散...2013-04-20 00:10:00 · 5923 阅读 · 6 评论 -
DP经典5题
DP一年多没碰过了,今天突然想找找感觉,找了经典的几道DP复习着敲了敲。虽然最大子矩阵,滑雪,石子合并等问题也足够经典,我还是从中找了5道最经典的DP写了这篇博文,如果您是大一,大二想踏入程序竞赛的同学可以当习题做做,如果您像我一样不是ACMer,平时项目中也很少用DP,同样可以回顾一下DP的奥妙。 1.最大连续子序列之和给定K个整数的序列{ N1, N2, ..., NK },其...2013-04-16 18:08:00 · 153 阅读 · 0 评论 -
斐波那契数列取模(大数)分治算法
斐波那契数列取模(大数)分治算法这是算法课程上完分之策略后老师留的一道题目:菲波那契数列如下:1,1,2,3,5,8,13,21,34......其中a[1] = 1, a[2] = 1, a[n]=a[n-1]+a[n-2](n>=3)。对给定的下标n,求解a[n]%1997的值.其中测试数据n是整数范围内。这个题目,主要是用到很关键的一个数学知识,斐波那契数列的求法...2013-04-01 17:03:00 · 468 阅读 · 0 评论 -
Introduction to Algorithm 6.3-3[Second Version]
证明:(1)对于h=0, 即叶子结点的个数,由6.1-7习题可知,叶子结点的个数最多为ceiling(n/2)=ceiling(n/2^(h+1)),即初始化成立。(2)假设h=x成立,即高度为x的结点最多有ceiling(n/2^(x+1)),那么对于高度为h=x+1的结点应该为高度为x的父结点,所以高度为x+1的结点个数最多为ceiling(n/2^(x+1))/2=ceilin...2013-04-04 10:43:00 · 73 阅读 · 0 评论 -
九大排序算法再总结
如果要转载,需要注明出处:http://blog.csdn.net/xiazdong 本文是http://blog.csdn.net/xiazdong/article/details/7304239的补充,当年看了《大话数据结构》总结的,但是现在看了《算法导论》,发现以前对排序的理解还不深入,所以打算对各个排序的思想再整理一遍。本文首先介绍了基于比较模型的排序算法,即...2013-04-05 16:05:00 · 99 阅读 · 0 评论 -
2012 Microsoft Intern Hiring Written Test
2012 Microsoft Intern Hiring Written Test 1. Suppose that a Selection Sort of 80 items has completed 32 iterations of the main loop. How many items are now guaranteed to be in their final spot (n...2013-04-05 17:28:00 · 90 阅读 · 0 评论 -
在 N 条水平线与 M 条竖直线构成的网格中,放 K 枚石子
【题目描述】 在 N 条水平线与 M 条竖直线构成的网格中,放 K 枚石子,每个石子都只能放在网格的交叉点上。问在最优的摆放方式下,最多能找到多少四边平行于坐标轴的长方形,它的四个角上都恰好放着一枚石子。 【输入】 输入文件包含多组测试数据。 第一行,给出一个整数T,为数据组数。接下来依次给出每组测试数据。 每组数据为三个用空格隔开的整数 N,M,K。33 3 84 5 13...2013-04-08 00:11:00 · 268 阅读 · 0 评论 -
素数生成算法
1. 根据概念判断:如果一个正整数只有两个因子, 1和p,则称p为素数.这是通常最先想到的判断方法:代码: bool isPrime(int n){if(n <2)returnfalse;for(int i =2; i < n;++i)if(n%i ==0)returnfalse;returntrue;}时间复杂度O(n).2. 改进, 偶...2013-04-09 21:36:00 · 183 阅读 · 0 评论 -
程序员面试【Brainteasers】
偶然间在网上看到几个原来没见过的面试智力题,有几个题目在国内流传相当广,什么n个人怎么分饼最公平,屋里的三个灯泡分别由哪个开关控制,三架飞机环游世界,用火柴和两根绳子测量45分钟之类的题目,火星得已经可以考古了,这里就不再说了。 1、考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部...2013-04-10 14:48:00 · 143 阅读 · 0 评论 -
基本动态规划讲解
动态规划动态规划算法总体思想动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题。但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式时间算法。动态规划基本步骤...2013-04-12 13:28:00 · 171 阅读 · 0 评论 -
动态规划基本问题
http://www.cnblogs.com/chinazhangjie/archive/2010/11/16/1878400.html动态规划动态规划算法总体思想动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题。但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。...2013-04-12 13:29:00 · 188 阅读 · 0 评论 -
卡特兰
http://buptdtt.blog.51cto.com/2369962/832586http://blog.csdn.net/hackbuteer1/article/details/74502502013-04-15 21:13:00 · 94 阅读 · 0 评论 -
[笔试题] Google笔试题整理(超全!)附部分答案
[笔试题] Google笔试题整理(超全!)附部分答案 写出这样一个函数 ,输入一个 n, 输出从1到这个数字之间的出现的1的个数,比如f(13)等于6; f(9)等于1; 网上有很多这道题的解法,大多采用穷举法。这把这个算法题变成了程序设计,这道题,我认为是总结一个递推公式,然后用递推法实现,比较好。后来在网上考证了一下,这道题本来也是让总结一个数学函数即可,无需编程。既然写了,就贴出来,发表...2013-04-26 14:13:00 · 574 阅读 · 0 评论 -
最长重复子串
问题描述给定一个字符串,求出其最长重复子串 例如:abcdabcd 最长重复子串是 abcd,最长重复子串可以重叠 例如:abcdabcda,这时最长重复子串是 abcda,中间的 a 是被重叠的。 直观的解法是,首先检测长度为 n - 1 的字符串情况,如果不存在重复则检测 n - 2, 一直递减下去,直到 1 。 这种方法的时间复杂度是 O(N * N * N),其中包括三部分,长度纬度...2013-04-26 16:19:00 · 173 阅读 · 0 评论 -
桶排序
桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将阵列分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递回方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的阵列内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限的影响。 例如要对大小为[1..1000...2013-05-20 15:17:00 · 82 阅读 · 0 评论 -
一次遍历等概率选取字符串中的某个字符
http://blog.chinaunix.net/uid-7921481-id-3022614.html存在一个等概率的0、1发生器。 给一个文本流,给定一个指定的字符'x',写一个函数,等概率地返回'x'的一个文本流偏移(就是'x'在字符串中的位置,比如文本为 axbx,那么x的偏移为{1, 3},最后你需要获得1或者3,概率分别为1/2 假设文本流每个字符1字节) ========...2013-05-27 19:26:00 · 475 阅读 · 0 评论 -
概率随机问题
http://www.cnblogs.com/yysblog/archive/2012/06/27/2566276.html1、问题定义可以简化如下:在不知道文件总行数的情况下,如何从文件中随机的抽取一行? 首先想到的是我们做过类似的题目吗?当然,在知道文件行数的情况下,我们可以很容易的用C运行库的rand函数随机的获得一个行数,从而随机的取出一 行,但是,当前的情况是不知道行...2013-05-27 21:20:00 · 367 阅读 · 0 评论 -
Twitter的系统编程
http://monkey.org/~marius/talks/twittersystems/#1英文http://www.csdn.net/article/2012-11-21/2812033-Systems-Programming-at-Twitter/2【译文】2013-06-09 10:20:00 · 145 阅读 · 0 评论 -
面试小集合
微软十五道面试题1、有一个整数数组,请求出两两之差绝对值最小的值, 记住,只要得出最小值即可,不需要求出是哪两个数。2、写一个函数,检查字符是否是整数,如果是,返回其整数值。 (或者:怎样只用4行代码编写出一个从字符串到长整形的函数?)3、给出一个函数来输出一个字符串的所有排列。4、请编写实现malloc()内存分配函数功能一样的代码。 给出一个函数来复制两个字符串A和B。字符串...2013-06-09 10:35:00 · 107 阅读 · 0 评论 -
求字符串组合数
#include<iostream> #include<vector> #include<cstring> using namespace std; #include<assert.h> void Combination(char *string ,int number,vector<char> &result); void Co...2013-08-29 10:57:00 · 143 阅读 · 0 评论 -
Google仍鸡蛋[DP]
这道题是说,100层楼,两个一模一样的鸡蛋,某层之上扔鸡蛋就会碎。问要测试多少次才能找出这层楼来。我曾经在去年初的这篇文章里面讨论过这个问题的解法,因为只想记录一下思路和讨论过程,写得很简略。现在,我想重新整理一下这个问题,再稍稍扩展和挖掘一下。希望可以用尽可能清晰易懂的描述,把这个问题的前后说清楚。现在只有两个鸡蛋,而算法必须是可行的,就是说要能找出这一层来,所以你得假设你的运气最差,这就...2013-09-05 11:08:00 · 100 阅读 · 0 评论 -
2012年CS毕业生
1,简介毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。首先说说我拿到的offer情况:微软,3面->终面,搞定百度,3面->终面,口头offer搜狗,2面,悲剧腾讯,1面,悲剧布丁移动,3面,搞定涂鸦游戏,3面,搞定友盟,3面->CEO面,搞定雅虎,4面->终面,搞定微策略,2面,悲剧...2013-09-09 12:18:00 · 174 阅读 · 0 评论 -
DP模式
DP也练了一部分,找感觉。说一下VIJOS上的。◆线性连接性的问题(包括分配问题,转换问题,连接问题,及宏观扩展),这样的例子比较多,方程就是由一维来记录处理到的线性位置作为阶段,然后用额外的未来记录分配的情况,之前临近的连接情况等,这样一个一个把状态连接起来得最优例子:P1323化工厂装箱员 P1386矿工配餐 P1417魔法塔防 P1421更换轮胎 P1456最小总代价 P1...2013-09-16 14:10:00 · 514 阅读 · 0 评论 -
CPU Sin
1 #include <iostream> 2 #include <cmath> 3 #include <ctime> 4 #include <windows.h> 5 6 using namespace std; 7 8 //得到循环0xFFFFFFFF次用的秒数 9 unsigned int test()...2012-08-22 21:12:00 · 147 阅读 · 0 评论 -
google面试
.谷歌面试题:给定能随机生成整数 1 到 5 的函数,写出能随机生成整数 1 到 7 的函数。回答:此题的关键是让生成的 1 到 7 的数出现概率相同。 只要我们可以从 n 个数中随机选出 1 到 n 个数,反复进行这种运算,直到剩下最后一个数 即可。 我们可以调用 n 次给定函数,生成 n 个 1 到 5 之间的随机数,选取最大数所在位置即 可满足以上要求。 例如 初始的 7 个数[1,2...2013-05-07 11:23:00 · 78 阅读 · 0 评论 -
在数组中找出3个数使得它们和为0
题目:给定一个集合S,试找出3个数a,b,c,使得a+b+c=0。也即从集合中找出所有的和为0的3个数。例如:集合S={-1,0,1,2,-1,4},则满足条件的3个数有2对:(-1, 0, 1)和(-1, 2, -1)。注意(-1,1,0)与(-1,0,1)算同一个解,所以不用重复考虑。当然该例子集合的解也可以写成:(0, 1, -1)和(2, -1, -1)。 解法:这...2013-04-27 11:56:00 · 281 阅读 · 0 评论 -
2n个整数分为两组,使两组和差的绝对值最小
http://blog.sina.com.cn/s/blog_6f194ed3010114vt.html最近建模看到作业这个题,一开始想了很久。在网上发现竟然没有完备的算法。不过最后想到一个可以Lingo实现的线性规划模型。 严格说,这不是一个算法,Lingo是如何实现0-1规划的我并不清楚。有可能也是枚举法,不过对于具体问题至少可以解决。因为是TeX编译的,重新打一遍太麻烦,所以正...2013-04-27 15:22:00 · 1406 阅读 · 0 评论 -
阿里巴巴笔试题
1、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页? A、7 B、8 C、9 D、102、设有一个顺序栈S,元素s1、s2、s3、s4、s5、s6依次进栈,如果6个元素的出栈顺序为s2、s3、s4、s6、s5、s1,则顺序栈的容量至少应为多少? A、...2013-04-28 13:04:00 · 132 阅读 · 0 评论 -
F(n)完全覆盖中的计数问题
完全覆盖中的计数问题山西省原平一中 任所怀这几天阅读周沛耕老师主编的《数学兴趣与创造力》一书,读到“完全覆盖中的计数问题”这一节,感觉有点意思。于是自已试着做一个探索性研究,也不知会有什么新的发现,让我们带着一颗好奇的心开始我们的探索之旅。 完全覆盖指的是用一个长1宽2(以后记为12)的矩形小纸片去覆盖一个大小为的矩形网格盘,要求小纸片不重叠、不伸...2013-04-28 15:47:00 · 336 阅读 · 0 评论