自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 968

原创 Node.js异步处理CPU密集型任务

这篇文章提出了backgroundjs这个新的概念,扩展了Node.js的能力,解决了Node在处理CPU密集任务时的短板。这个解决方案使得使用Node的开发人员只需要关注backgroundjs中的函数。比起多开进程或者新添加模块的解决方案更高效,通用和一致。

2014-05-14 17:44:57 2511

转载 编写的windows程序,崩溃时产生crash dump文件的办法(转)

文章来源:http://blog.csdn.net/fhxpp_27/article/details/9701867一、引言dump文件是C++程序发生异常时,保存当时程序运行状态的文件,是调试异常程序重要的方法,所以程序崩溃时,除了日志文件,dump文件便成了我们查找错误的最后一根救命的稻草。windows程序产生dump文件和linux程序产生dump文件的方式不一

2014-01-26 15:36:14 2298

转载 浅谈chromium中的指针管理

source: http://blog.csdn.net/qq295445028/article/details/8017661浅谈chromium中的指针管理分类: chromium2012-09-25 16:45 342人阅读 评论(0) 收藏 举报objectreferencepointersclass多线程null目录(?)[+]

2013-10-07 18:00:25 918

原创 下载编译Chrome详细步骤

1      Chrome的代码量巨大,下载编译的过程一出错,可能就需要回头从来。工欲善其事,必先利其器,推荐电脑内存至少8G,否则会难以忍受的慢,当然是64位系统,您还需要设置显示文件后缀名。如图,将勾选去掉2   然后安装Visual Studio 2010 Uitimate,安装路径默认。安装最全的,以后省心,然后顺序安装:VS2010 SP1Windows 8

2013-07-07 13:23:56 7044

原创 把数组排成最小的数(66)

68.把数组排成最小的数。题目:输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32,  321},则输出这两个能排成的最小数字32132。请给出解决问题的算法,并证明该算法。分析:这是09年6月份百度的一道面试题,从这道题我们可以看出百度对应聘者在算法方面有很高的要求。/* Name: Copyright

2013-06-27 04:22:49 1227

原创 堆排序算法

/* Name: Copyright: Author: Date: 18-06-11 20:51 Description: 实现堆排序的模版类 ,元素从1开始计.T为要排序的元素类型, [note:]必须支持 <= 运算 和 赋值运算 */#include#includeusing namespace std;templatec

2013-06-08 12:28:31 974

原创 快速排序

#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 829

原创 一个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 1006

原创 list 容器实现

这是一份简化了的List容器的实现代码,支持迭代器,包含了常用功能。这个list的方法列表:    拷贝构造和赋值构造   清除容器——remove_all()   大小——size()   在尾部插入元素—— push_back(elem)   弹出尾部节点——pop_back()   获得最后节点元素的一份拷贝——get_back()   获得迭代器操作

2013-05-19 18:13:18 854

原创 大整数相乘

这是一道经典的上机题目 #include #include #include #define N 100 //N代表乘数的位数,根据具体应用,想设多大设多大。/***** * Function: 大整数相乘算法 * 参数: * a: 乘数 * b: 乘数 * n: a的长度 * m: b的长度 * 没有返回值,结果直接放到全局变量res数组中,如果不想要全

2013-05-19 16:38:56 674

原创 实现异常安全性(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 1099

原创 打印出字符串中字符的所有排列

53.字符串的排列。题目:输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。分析:这是一道很好的考查对递归理解的编程题,因此在过去一年中频繁出现在各大公司的面试、笔试题中。 #include#include/*输入一个字符串,打印出该字符串中字符的所有

2013-05-19 16:24:56 1027

原创 序列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 1138

原创 在从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 1067

原创 栈的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 1119

原创 整数的二进制表示中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 971

原创 跳台阶问题(27)

27.跳台阶问题题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法,并分析算法的时间复杂度。这道题最近经常出现,包括MicroStrategy等比较重视算法的公司都曾先后选用过个这道题作为面试题或者笔试题。 /* Name: Copyright: Author: Date: 16-06-11 19:55 Descript

2013-05-19 15:28:05 784

原创 左旋转字符串(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 761

原创 在字符串中找出连续最长的数字串(25)

第25题:写一个函数,它的原形是int continumax(char *outputstr,char *intputstr)功能:在字符串中找出连续最长的数字串,并把这个串的长度返回,并把这个最长数字串付给其中一个函数参数outputstr所指内存。例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputst

2013-05-19 15:07:54 755

原创 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 1175

原创 在一个字符串中找到第一个只出现一次的字符(17)

第17题:题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。  分析:这道题是2006年google的一道笔试题。 /* Name: Copyright: Author: Date: 15-06-11 12:05 Description: :在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b*/

2013-05-18 13:39:20 1379

原创 输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印(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 1146

原创 输入一颗二元查找树,将该树转换为它的镜像(15)

第15题:题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。  例如输入:  8  / \  6 10 /\ /\5 7 9 11输出:   8  / \ 10 6 /\ /\11 9 7 5定义二元查找树的结点为:struct BSTr

2013-05-18 12:43:50 1073

原创 输入一个已经按升序排序过的数组和一个数字(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 922 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 763

原创 翻转句子中单词的顺序(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 676

原创 判断整数序列是不是二元查找树的后序遍历结果(9)

第9题判断整数序列是不是二元查找树的后序遍历结果题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:         8      /  \     6    10    / \  / \   5  7 9  11因此返回

2013-05-09 13:30:52 664

原创 在二元树中找出和为某一值的所有路径(4)

题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如 输入整数22和如下二元树  10    / \    5  12    /   \   4     7则打印出两条路径:10, 12和10, 5, 7。二元树节点的数据结构定义为:struct BinaryTreeNo

2013-05-09 13:23:08 683

原创 求子数组的最大和(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 596

原创 设计包含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 830

原创 把二元查找树转变成排序的双向链表

题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。   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 532

原创 两个大整数相加—高精度加法

这是一个经典的上机题目,要求输入两个数字字符串,实现任何长度的加法,供上机笔试的同学参考/* Name: Copyright: Author: Date: Description: 高精度加法 */#include using namespace std;//这里为最大位数 的长度 #define N 100void swap(cha

2013-04-26 15:57:05 1034

原创 和为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 621

原创 把二元查找树转变成排序的双向链表

//今天是世界知识产权日,在这一天发表第一篇文章,希望转载我博客的同学 注明出处;//3.求子数组的最大和//题目://输入一个整形数组,数组里有正数也有负数。//数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。//求所有子数组的和的最大值。要求时间复杂度为O(n)。//例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3

2013-04-26 15:18:40 533

ATL技术资料

这是一份ATL方面的技术资料,其中窗口和窗口类的映射中,ATL采用thunk机制,讲解的比较清楚

2013-05-19

Dev CPP

一款免费开源的C++编译器,来自于开源社区,拥有可视化界面,集成资源编辑器,符合最新C++标准,适合C++初学者

2012-10-08

软件加密技术内幕.chm

第1章 PE文件格式深入研究 1.1 PE文件格式格式纵览 1.1.1 区块(Section) 1.1.2 相对虚拟地址(Relative Virtual Addresses) 1.1.3 数据目录 1.1.4 输入函数(Importing Functions) 1.2 PE文件结构 1.2.1 The MS-DOS头部 1.2.2 IMAGE_NT_HEADERS头部 1.2.3 区块表(The Section Table) 1.2.4 各种块(Sections)的描述 1.2.5 输出表 1.2.6 输出转向(Export Forwarding) 1.2.7 输入表 1.2.8 绑定输入(Bound import) 1.2.9 延迟装入数据(Delayload Data) 1.2.10 资源 1.2.11 基址重定位(Base Relocations) 1.2.12 调试目录(DebugDirectory) 1.2.13 NET头部 1.2.14 TLS初始化 1.2.15 程序异常数据 第2章 PE分析工具编写 2.1 文件格式检查 2.2 FileHeader和OptionalHeader内容的读取 2.3 得到数据目录(Data Dircetory)信息 2.4 得到块表(SectionTable)信息 2.5 得到输出表(ExportTable)信息 2.6 得到输入表(ImportTable)信息 第3章 Win32 调试API 3.1 Win32调试API原理 3.1.1 调试相关函数简要说明 3.1.2 调试事件 3.1.3 如何在调试时创建并跟踪一个进程 3.1.4 最主要的循环体 3.1.5 如何处理调试事件 3.1.6 线程环境详解 3.1.7 如何在另一个进程中注入代码 3.2 利用调试API编写脱壳机 3.2.1 tElock 0.98脱壳简介 3.2.2 脱壳机的编写 3.3 利用调试API制作内存补丁 3.3.1 跨进程内存存取机制 3.3.2 Debug API机制 第4章 Windows下的异常处理 4.1 基本概念 4.1.1 Windows下的软件异常 4.1.2 未公开的可靠吗 4.2 结构化异常处理(SEH) 4.2.1 异常处理的基本过程 4.2.2 SEH的分类 4.2.3 相关API 4.2.4 SEH相关数据结构 4.3 异常处理程序设计 4.3.1 顶层(top-level)异常处理 4.3.2 线程异常处理 4.3.3 异常处理的堆栈展开(Stack unwind) 4.3.4 异常处理程序设计中的几个注意事项: 4.4 SEH的简单应用 4.4.1 Win9x下利用SEH进ring0 4.4.2 利用SEH实现对自身的单步自跟踪 4.4.3 其它应用 4.5 系统背后的秘密 4.6 VC是如何封装系统提供的SEH机制的 4.6.1 扩展的EXCEPTION_REGISTRATION级相关结构 4.6.2 数据结构组织 4.7 Windows XP下的向量化异常处理(VEH) 第5章 软件加密技术 5.1 反调试技术(Anti-Debug) 5.1.1 句柄检测 5.1.2 SoftICE后门指令 5.1.3 int68子类型 5.1.4 ICECream子类型 5.1.5 判断NTICE服务是否运行 5.1.6 INT 1 检测 5.1.7 利用UnhandledExceptionFilter检测 5.1.8 INT 41子类型 5.2 反跟踪技术(Anti-Trace) 5.2.1 断点检测 5.2.2 利用SEH反跟踪 5.2.3 SMC技术实现 5.3 反加载技术(Anti-Loader) 5.3.1 利用TEB检测 5.3.2 利用IsDebuggerPresent函数检测 5.3.3 检查父进程 5.4 反DUMP技术(Anti-Dump) 5.5 文件完整性检验 5.5.1 CRC校验实现 5.5.2 校验和(Checksum) 5.5.3 内存映像校验 5.6 反监视技术(Anti-Monitor) 5.6.1 窗口方法检测 5.6.2 句柄检测 5.7 反静态分析技术 5.7.1 扰乱汇编代码 5.7.2 花指令 5.7.3 信息隐藏 5.8 代码与数据结合技术 5.9 软件保护的若干忠告 第6章 加壳软件编写 6.1 外壳编写基础 6.1.1 判断文件是否是PE格式的EXE文件 6.1.2 文件基本数据的读入 6.1.3 额外数据保留 6.1.4 重定位数据的去除 6.1.5 文件的压缩 6.1.6 资源区块的处理 6.1.7 区块的融合 6.1.8 输入表的处理 6.1.9 外壳部分的编写 6.1.10 将外壳部分添加至原程序 6.1.10 小结 6.2 加壳程序综合运用的实例 6.2.1 程序简介 6.2.2 加壳子程序(WJQ_ShellBegin()) 6.2.3 PE外壳程序 6.2.4 加进Anti技术 6.2.5 通过外壳修改被加壳PE 6.2.6 VC++调用汇编子程序 第7章 如何让壳与程序融为一体 7.1 序 7.1.1 为何需要壳和程序一体化 7.1.2 为阅读此章节需要的知识 7.1.3 基于此章节用的的例子程序说明 7.2 欺骗检查壳的工具 7.2.1 fi是如何检查壳的 7.2.2 欺骗fi 7.3 判断自己是否给脱壳了 7.3.1 判断文件尺寸 7.3.2 检查标记 7.3.3 外部检测(使用dll) 7.3.4 hook 相关的api(防止loader和调试api) 7.4 使用sdk把程序和壳溶为一体 7.4.1 sdk的意义 7.4.2 做一个带sdk的壳 7.5 后记:关于壳和程序的思考 第8章 Visual Basic 6 逆向工程 8.1 简介 8.2 P-code传奇 8.3 VB编译奥秘 8.4 VB与COM 8.5 VB可执行程序结构研究 8.6 VB程序事件解读 8.7 VB程序图形界面(GUI)解读 8.8 VB程序执行代码研究 8.9 我们的工具 8.10 VB程序保护篇 附录A 在Visual C++中使用内联汇编 附录B 在Visual Basic中使用汇编

2009-08-04

Windows程式开发设计指南

解决Windows程式开发各种疑难杂症时的灵丹妙药。在第五版的《Windows程式开发设计指南》中,作者身违背受敬重的Windows Pioneer Award(Windows开路先锋奖)得主,依据最新版本Windows作业系统,以可靠的取材资料校定这一本经典之作一再一次深入探索了Win32程式设计介面的根本重心。

2009-08-03

空空如也

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

TA关注的人

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