- 博客(35)
- 资源 (4)
- 收藏
- 关注

转载 微软等数据结构+算法面试100题
火爆出炉:微软等数据结构+算法面试100题 ================作者:July 2010年12月6日微软等100题系列V0.1版终于结束了。从2010年10月11日当天最初发表前40题以来,直至此刻,整理这100题,已有近2个月。2个月,因为要整理这100题,很多很多其它的事都被我强迫性的搁置一旁,如今,要好好专心去做因这100题而被耽
2013-04-28 19:53:48
1061
原创 Node.js异步处理CPU密集型任务
这篇文章提出了backgroundjs这个新的概念,扩展了Node.js的能力,解决了Node在处理CPU密集任务时的短板。这个解决方案使得使用Node的开发人员只需要关注backgroundjs中的函数。比起多开进程或者新添加模块的解决方案更高效,通用和一致。
2014-05-14 17:44:57
2573
转载 编写的windows程序,崩溃时产生crash dump文件的办法(转)
文章来源:http://blog.youkuaiyun.com/fhxpp_27/article/details/9701867一、引言dump文件是C++程序发生异常时,保存当时程序运行状态的文件,是调试异常程序重要的方法,所以程序崩溃时,除了日志文件,dump文件便成了我们查找错误的最后一根救命的稻草。windows程序产生dump文件和linux程序产生dump文件的方式不一
2014-01-26 15:36:14
2449
转载 浅谈chromium中的指针管理
source: http://blog.youkuaiyun.com/qq295445028/article/details/8017661浅谈chromium中的指针管理分类: chromium2012-09-25 16:45 342人阅读 评论(0) 收藏 举报objectreferencepointersclass多线程null目录(?)[+]
2013-10-07 18:00:25
978
原创 下载编译Chrome详细步骤
1 Chrome的代码量巨大,下载编译的过程一出错,可能就需要回头从来。工欲善其事,必先利其器,推荐电脑内存至少8G,否则会难以忍受的慢,当然是64位系统,您还需要设置显示文件后缀名。如图,将勾选去掉2 然后安装Visual Studio 2010 Uitimate,安装路径默认。安装最全的,以后省心,然后顺序安装:VS2010 SP1Windows 8
2013-07-07 13:23:56
7193
原创 把数组排成最小的数(66)
68.把数组排成最小的数。题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32, 321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。分析:这是09年6月份百度的一道面试题,从这道题我们可以看出百度对应聘者在算法方面有很高的要求。/* Name: Copyright
2013-06-27 04:22:49
1267
原创 堆排序算法
/* Name: Copyright: Author: Date: 18-06-11 20:51 Description: 实现堆排序的模版类 ,元素从1开始计.T为要排序的元素类型, [note:]必须支持 <= 运算 和 赋值运算 */#include#includeusing namespace std;templatec
2013-06-08 12:28:31
1018
原创 快速排序
#includeusing namespace std;/* Name: Copyright: Author: Date: 08/06/13 10:30 Description: */templateint partion(T t[],int p,int r){ T x=t[r]; T temp; int i=p-1;
2013-06-08 11:30:36
873
原创 一个CPU占用成正弦曲线的代码
Name: Copyright: Author: Date: Description: 测试的时候,如果是多核cpu,需要设置cpu的亲和性。 #include#include#includeconst double SPLIT =0.01;const int COUNT=200;const double PI=3.1415926;co
2013-05-20 10:17:43
1063
原创 list 容器实现
这是一份简化了的List容器的实现代码,支持迭代器,包含了常用功能。这个list的方法列表: 拷贝构造和赋值构造 清除容器——remove_all() 大小——size() 在尾部插入元素—— push_back(elem) 弹出尾部节点——pop_back() 获得最后节点元素的一份拷贝——get_back() 获得迭代器操作
2013-05-19 18:13:18
905
原创 大整数相乘
这是一道经典的上机题目 #include #include #include #define N 100 //N代表乘数的位数,根据具体应用,想设多大设多大。/***** * Function: 大整数相乘算法 * 参数: * a: 乘数 * b: 乘数 * n: a的长度 * m: b的长度 * 没有返回值,结果直接放到全局变量res数组中,如果不想要全
2013-05-19 16:38:56
716
原创 实现异常安全性(55)
题目:类CMyString的声明如下:class CMyString{public: CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); CMyString& operator = (const CMyString& s
2013-05-19 16:32:58
1153
原创 打印出字符串中字符的所有排列
53.字符串的排列。题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。分析:这是一道很好的考查对递归理解的编程题,因此在过去一年中频繁出现在各大公司的面试、笔试题中。 #include#include/*输入一个字符串,打印出该字符串中字符的所有
2013-05-19 16:24:56
1079
原创 序列a元素的和与序列b元素的和之间的差最小(32)
32.有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b中的元素,使序列a元素的和与序列b元素的和之间的差最小。例如: var a=[100,99,98,1,2, 3];var b=[1, 2, 3, 4,5,40]; /* Name: Copyright: Author: Date: 20-06-11 08:22
2013-05-19 16:20:23
1197
原创 在从1到n的正数中1出现的次数(30)
30.在从1到n的正数中1出现的次数题目:输入一个整数n,求从1到n这n个整数的十进制表示中1出现的次数。例如输入12,从1到12这些整数中包含1 的数字有1,10,11和12,1一共出现了5次。分析:这是一道广为流传的google面试题。 /* Name: Copyright: Author: Date: 17-06-11 08:10Descripti
2013-05-19 16:02:00
1120
原创 栈的push、pop序列(29)
29.栈的push、pop序列题目:输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。 比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。因为可以有如下的push和pop序列:push 1,push 2,push 3,pus
2013-05-19 15:51:50
1175
原创 整数的二进制表示中1的个数(28)
28.整数的二进制表示中1的个数题目:输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。分析:这是一道很基本的考查位运算的面试题。包括微软在内的很多公司都曾采用过这道题。 /* Name: Copyright: Author: Date: 16-06-11 20:35 Descrip
2013-05-19 15:35:17
1007
原创 跳台阶问题(27)
27.跳台阶问题题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。这道题最近经常出现,包括MicroStrategy等比较重视算法的公司都曾先后选用过个这道题作为面试题或者笔试题。 /* Name: Copyright: Author: Date: 16-06-11 19:55 Descript
2013-05-19 15:28:05
852
原创 左旋转字符串(26)
26.左旋转字符串题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。 #include#includeusing namespace std;void reverse(char *s,cons
2013-05-19 15:13:13
809
原创 在字符串中找出连续最长的数字串(25)
第25题:写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputst
2013-05-19 15:07:54
805
原创 n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始(18)
第18题:题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。 /* Name: Copyright: Author: Date: 15-06-11 14:1
2013-05-18 15:13:40
1231
原创 在一个字符串中找到第一个只出现一次的字符(17)
第17题:题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:这道题是2006年google的一道笔试题。 /* Name: Copyright: Author: Date: 15-06-11 12:05 Description: :在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b*/
2013-05-18 13:39:20
1454
原创 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印(16)
第16题:题目(微软):输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。 例如输入 8 / \ 6 10/ \ / \5 7 9 11输出8 6 10 5 7 9 11。 #include#includeusing namespace std;struct BTreeNode{ int m_Val
2013-05-18 12:57:27
1199
原创 输入一颗二元查找树,将该树转换为它的镜像(15)
第15题:题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / \ 6 10 /\ /\5 7 9 11输出: 8 / \ 10 6 /\ /\11 9 7 5定义二元查找树的结点为:struct BSTr
2013-05-18 12:43:50
1118
原创 输入一个已经按升序排序过的数组和一个数字(14)
第14题:题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即可。例如输入数组1、2、4、7、11、15和数字15。由于4+11=15,因此输出4和11。 #include#includeusing namespace std; void fin
2013-05-18 12:36:11
998
1
原创 求1+2+…+n(12)
题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。 /* Name: Copyright: Author: Date: 30-08-11 20:12 Description: */#include#includeusing namespace std;int
2013-05-18 12:30:59
815
原创 翻转句子中单词的顺序(10)
第10题翻转句子中单词的顺序。题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student. a am I”。 /* Name: Copyright: Author: Date: 30-08-11 19:26
2013-05-18 12:14:36
724
原创 判断整数序列是不是二元查找树的后序遍历结果(9)
第9题判断整数序列是不是二元查找树的后序遍历结果题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / \ 6 10 / \ / \ 5 7 9 11因此返回
2013-05-09 13:30:52
703
原创 在二元树中找出和为某一值的所有路径(4)
题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如 输入整数22和如下二元树 10 / \ 5 12 / \ 4 7则打印出两条路径:10, 12和10, 5, 7。二元树节点的数据结构定义为:struct BinaryTreeNo
2013-05-09 13:23:08
720
原创 求子数组的最大和(3)
题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)。例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2,因此输出为该子数组的和18。 #include#includeusing name
2013-05-09 13:20:26
634
原创 设计包含min函数的栈(2)
定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。 #include#includeusing namespace std;/*2.设计包含min函数的栈(栈)定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。*/#defi
2013-04-28 19:48:30
866
原创 把二元查找树转变成排序的双向链表
题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 10 / \ 6 14 / \ / \4 8 12 16 转换成双向链表4=6=8=10=12=14=16。 首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{ int m_nVal
2013-04-28 15:06:29
571
原创 两个大整数相加—高精度加法
这是一个经典的上机题目,要求输入两个数字字符串,实现任何长度的加法,供上机笔试的同学参考/* Name: Copyright: Author: Date: Description: 高精度加法 */#include using namespace std;//这里为最大位数 的长度 #define N 100void swap(cha
2013-04-26 15:57:05
1101
原创 和为n连续正数序列
//51.和为n连续正数序列。//题目:输入一个正数n,输出所有和为n连续正数序列。//例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。//分析:这是网易的一道面试题。//这个题目出自微软等数据结构+算法面试100题//在DevC++中编译通过/* Name: Copyright:
2013-04-26 15:43:32
672
原创 把二元查找树转变成排序的双向链表
//今天是世界知识产权日,在这一天发表第一篇文章,希望转载我博客的同学 注明出处;//3.求子数组的最大和//题目://输入一个整形数组,数组里有正数也有负数。//数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。//求所有子数组的和的最大值。要求时间复杂度为O(n)。//例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3
2013-04-26 15:18:40
569
软件加密技术内幕.chm
2009-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人