自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创 博客搬家了

新博客地址:http://wangpengfly.github.io/

2013-07-01 08:28:31 494

原创 链表面试题小结(待完成)

以下代码使用的公共结构:链表节点:struct ListNode{ int data; ListNode *next;};辅助函数://make a listListNode *makeList(int *arr, int n){ if(arr == NULL || n <= 0) return NULL; ListNode *phead = ne

2013-06-14 11:32:26 730

原创 求一个数二进制表示中1的个数

题目:给定一个整型数据N,求数N的二进制表示中的1的个数解答:用1与N做与运算,可以检查N的最右位是否为1,将1左移一位,与N做与运算可以检查N的倒数第二最右位是否为1,同理检查N的所有位。若N为32位,则需要检查32次。N与N-1做与运算,N的最右一个为1的位将会变为0,按照这个思路编程,直到N为0,检查的次数为1的个数。例如二进制10110减1为10101,做与运算结果

2013-06-13 10:28:30 651

原创 堆排序

题目:使用堆排序对数组进行排序解答:堆排序(这里使用最大堆)的步骤是:使用maxHeapify函数对数组自底向上建堆将堆首第一个元素移到堆后,然后再使用maxHeapify生成新堆,堆的长度减1循环进行2,只到堆的长度为1堆排序的时间复杂度为O(n * logn),是不稳定排序。代码:#include #include using namespa

2013-06-06 14:51:04 492

原创 求序列的全排列

题目:给定一个序列,求出其全排列,并保证有序。例如字符串123的全排列是123,132,213,231,312,321。解答:递归解法。从第一个数开始的每一个数字与其后面的数字交换。如果序列中存在重复数据,比如122,则在交换之前看两个交换数字之间有没有与下标比较大的交换数字相等的数字,如果有的话,则不交换。比如122中,1与第二个2交换,发现中间有一个2,所以不交换,因为

2013-06-05 16:42:51 1015

原创 求小于等于N的所有正整数里面包含的1的个数

题目:已知一个正整数N,求比N小(包括N)的所有正整数中包含的1的个数。例如N = 12,则包含5个1,分别为1、10、11、12解答:最直观最简单的想法是,从1到N对每一个数检查,得出每个数中包含的一的个数,事件复杂度大概是O(N)1时间复杂度比较高,不是最优算法。一个比1快的算法是:对N的每一位进行检查,得出比N小的正数某一位包含的1的个数总和。比如1234,千位包

2013-05-29 17:23:23 2441 1

原创 小飞的电梯调度算法

题目:(编程之美 1.8)一栋楼有6层,现在设计一种电梯调度算法:电梯在一楼让大家上电梯,然后根据大家选择要到的楼层算出某一楼层i,电梯在i层停下让所有人下电梯,然后大家爬楼梯达到自己的楼层。请问电梯停在哪一层,可以使得这一次的所有乘客爬楼层之和最短?解答:最简单的想法就是遍历每一层,依次求出每一层所有人爬楼总和,总和最小的那一层即是答案,这样的话时间复杂度就是O(N *

2013-05-28 09:37:45 993

原创 编写正确的二分查找算法

题目:(编程之美 3.11)编写一个正确的二分查找算法,对一个升序的数组进行排序,若数组中有多个一样的,则返回下标最大的那个。解答:二分查找是一个最基本的算法,但是编写一个正确的二分查找算法还是不太容易,因为一步小心就容易造成一些小错误。《编程珠玑》第四章就专门介绍了“二分搜索的挑战”。如何返回下标最大的那个值的下标?只要保证在比较的时候,先比较value是不是比以mid为

2013-05-23 16:00:57 1141

原创 按层遍历二叉树

参考博客:http://www.cnblogs.com/miloyip/archive/2010/05/12/binary_tree_traversal.html题目:(编程之美 3.10)给定一棵二叉树,要求按分层遍历该二叉树,即从上到下按层次访问该二叉数(每一层输出一行),每一层访问的顺序必须从左到右。解答:两种解法将树每一层节点保存到数组中,数组中使用begin和

2013-05-23 10:16:34 821

原创 筛法求N以内所有质数

题目:打印出给定数N以内的所有质数解答:使用筛法求N以内的所有质数注意:使用bitmap可以减少使用的空间,降低空间复杂度代码:#include #include using namespace std;#define MAX 5000int array[MAX];//使用bitmapvoid setArray(int i)//设置bitma

2013-05-22 21:53:14 1410

原创 二叉树的前序遍历和中序遍历求二叉树

题目:已知某一个二叉树的前序遍历和中序遍历,求该二叉树的后续遍历。解答:前序遍历第一个节点就是根节点,可以根据这个根节点和中序遍历的定义(先遍历左子树,再遍历根节点,最后遍历右子数)将中序遍历分成左子树的中序遍历和右子树的中序遍历,递归构造二叉树。注意:二叉树的三种遍历中:前序遍历、中序遍历、后序遍历并不能都可以已知两种遍历求第三种遍历,必须已知中序遍历,即前序遍历

2013-05-22 10:17:01 815

原创 线性复杂度循环右移数组

题目:设计算法,实现一个对数组循环右移k个元素的函数,要求时间复杂度为O(n)解答:第一反应想到的是保存要右移的K个元素,然后将右边的N - K个元素左移,这样也可以做到O(n)的时间复杂度,但是空间复杂度是O(k)。这个方法符合题意,但是不够好。在有些题目中,对空间复杂度有进一步要求:只允许使用两个附加变量。这个时候,就只能使用下面代码的思路了,这个在编程珠矶里面有讲。思路为

2013-05-22 10:14:57 721

转载 explicit构造函数

按照默认规定,只有一个参数的构造函数也定义了一个隐式转换,将该构造函数对应数据类型的数据转换为该类对象,如下面所示:class String {String ( const char* p ); // 用C风格的字符串p作为初始化值//…}String s1 = “hello”; //OK 隐式转换,等价于String s1 = String(“hello”); 但

2012-07-20 11:16:31 283

原创 windows下配置和使用boost

1,官网上下载boost的最新版本  http://www.boost.org/2,解压至相应的文件夹 我这里是 F:\software\boost3,安装vs20084,进入vs2008的命令提示窗口,进入boost文件夹,执行:bootstrap.bat,会生成bjam.exe5,运行bjam.exe,相应的命令为     bjamstage --without-pytho

2012-07-11 17:36:59 570

转载 Tcpdump的详细用法

转自:http://www.cnblogs.com/yc_sunniwell/archive/2010/07/05/1771563.html1. TCPDump介绍          TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。tcpdump就是一种免

2012-07-10 09:33:35 393

原创 boost中asio的编译运行出错问题

1,编译出错:undefined reference to `boost::system::system_category()' 增加编译选项 -l boost_systemundefined reference to `pthread_getspecific' 增加编译选项 -lpthread则最终的gcc编译命令为:g++ server.cpp -o main -l boost_s

2012-07-05 22:26:40 909

原创 强耦合和解耦合的一种情况-pimpl

//x.hppclass X{public: void getX(){...}}//c.h#include class C{public: void getC();private: X x;}//c.cpp#include void C::getC(){ x.getX(); ...}//s.h#include class S

2012-07-03 16:45:12 1331 1

原创 extern使用小谈

extern翻译成中文就是“外部”,在c++中的意思就是所使用的变量和函数是外部的,而不在本文件中定义和声明的。举个例子://name.h....void print();//name.cppint i = 10;void print(){ std::cout << 11 << std::endl;}//testExtern.hextern int i; //

2012-07-03 16:41:50 343

7款不错的html后台管理界面模板

7款不错的html后台管理界面模板,网上收集和整理的

2012-07-24

空空如也

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

TA关注的人

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