自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 打印1到最大的n位数

解析:打印1到最大的n位数,首先因为n的大小没有确定,所以就得分两种情况考虑,假如n在整数范围内,当n小于INT_MAX时,直接用处理整数的方式来计算,否则就得将n转化成字符串来处理,具体整数处理,请看代码//打印1到最大的n位数bool print_number(char *str,int n){ int top=0; //从个位开始算起 for(int i=n-1; i>=0;

2016-06-29 01:49:22 1899

原创 进程和线程的区别

操作系统面试题1、进程和线程的区别?解析:(1)进程是资源的分配和调度的一个独立单元,而线程是CPU调度的基本单元          (2)同一个进程中可以包括多个线程,并且线程共享整个进程的资源(寄存器、堆栈、上下文),一个进行至少包括一个线程。          (3)进程的创建调用fork或者vfork,而线程的创建调用pthread_create,进程结束后它拥有的

2016-06-27 20:53:51 86441 7

原创 Linux 进程间通信(IPC)

Linux 进程间通信(IPC)说明:首先要声明一点,我接下来要写的都针对在面试的时候被问的一些详解1、为什么要有进程间通信?解析:因为进程间通信主要是强调在不同的进程间交换数据,而数据的交换必须依靠内核来实现,任何一个进程的全局变量在另一个进程中都是看不见的,所以内核开辟了一块缓冲区,进程A将数据放入内核,进程B从内核将数据取走,就实现了进程间通信2、进程间通信有几种通信

2016-06-27 20:49:31 2848

原创 非递归实现二叉搜索树转化成双链表

题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。      10  / \ 6 14 / \ / \4 8 12 16     转换成双向链表4=6=8=10=12=14=16。分析:代码难理解的地方我都已经注释了,为什么要写非递归的实现,是因为我在看剑指offer的时候,上面是递归实

2016-06-24 15:32:48 1633 1

原创 二叉搜索树的后序遍历序列

题目:输入一个整数数组,判断该数组是不是一颗二叉搜索树的后续遍历的结果,如果是返回true,否则返回false分析:由于二叉搜索树的特性,左子树一定小于根节点,右子树一定大于根节点,所以在一颗二叉搜索树中不会出现两个相同的节点bool IsBST(int arr[],int len){ assert(arr !=NULL); if(len < 0) return fals

2016-06-24 10:04:36 1353 1

原创 输入两个整数m和n,计算m需要改变多少位才能得到n

题目:输入两个整数m和n,计算m需要改变多少位才能得到n?解析:        这个题我最开始是没有思路的,想了很久才有点思路,思路的来源是把他们转化成二进制后才有的       例如:(5)的二进制:0101  (3)的二进制:0011       如果要把5变成3的话,需要改变:2次,因为第一位0和最后一位1都相同        所以不需要改变,做法,先将两个数

2016-06-22 21:36:55 3514

原创 旋转数组的最小值

题目:把一个数组最开的若干个元素搬到数组的末尾,我们称之为数组的旋转,输入一个递增排序的的数组的一个旋转,输出旋转数组的最小元素,例如:数组{3,4,5,1,2}旋转后为{1,2,3,4,5},该数组的最小值为:1解析:        这是最近在看剑指offer,然后就看到这道题了,然后上面的解法有两种:1、也是最容易想到的一种,将数组按升序排序一下,然后数组的第一个数就是最小值,

2016-06-22 21:03:55 1733

原创 只创建在堆上生成的变量详解

解析:今天在看Effective C++时,看到了抽象函数详解那块,于是很自然的就想到了以前看过的一道题:创建只在堆上生成的变量。这题换句话说:只能用指针创建变量,即Type *value=get_point();类似于这样的问题,有两种方法可以完成这个问题:1、第一种,也是最能先想到的一种,将构造函数放在private(私有)里,这样就无法在栈上定义变量了,这种很简单,基本学过class

2016-06-20 22:36:55 2727

原创 打印1到最大的n位数

解析://打印1到最大的n位数//最开始是看剑指offer实现的,但看着有点晕,于是自己经常调试后总结出来的//所以如果看不怎么懂的时候将代码写出来然后调试,调试后就知道它是怎么运行的//注释的部分是剑指offer上实现的,bool increment(char *str){ //bool is_over_flow=false; int tmp=0; //int nTake

2016-06-19 01:29:53 565

原创 连续子数组的最大和

1、分析://之前在剑指offer上看到这个问题,感觉它实现的代码让我有一些难理解,所以看了它上面的思路自己实现了一下,个人感觉比他写的代码好理解点,所以就分享哈,如果有不正确的,欢迎提出意见 2 #include 3 #include 4 using namespace std; 5 6 //连续子数组中最大和 7 //思想:从第一个第一个数开始往

2016-06-17 22:05:01 1812 1

原创 两个链表是否相交详解

//两个链表是否相交?//常规解法,但时间复杂度为O(N1*N2)bool intersct(node *des,node *src){ if(des==NULL || src==NULL) return false; node *cur_des=des; while(cur_des !=NULL) { node *cur_src=src; while(cur_src

2016-06-07 19:55:00 742

原创 链表面试题详解

struct node{ int value; struct node *next; node(int key=0):value(key){}};//无头的单链表void init(node *&head){ if(NULL==head) head=NULL;}//两种情况,head==NULL或者没有找到都返回NULL//否则返回找到的节点node* find(no

2016-06-07 19:07:27 519

原创 二分查找详解

int search(int *arr,int size,int key){ assert(arr !=NULL); assert(size>0); int high=size-1; int low=0; while(low <=high) { int mod=low+(high-low)/2; if(arr[mod]==key) return mod; if(ke

2016-06-07 19:02:20 538

原创 双链表插入 删除详解

节点结构:struct both_node{ int key; struct both_node *prev; struct both_node *next; both_node(int k) :key(k),prev(NULL),next(NULL) {}};不带头节点的双链表实现插入 删除,双链表//插入void insert_both(both_no

2016-06-07 18:09:49 4525

原创 memcpy优化 实现高效

1:函数原型void * memcpy ( void * des, const void * src, size_t size );它是实现对内存的拷贝,所以还是很高效的,我这里没有考虑字符重叠的情况,只是实现它的高效性,废话不多说直接上代码1 2 #include 3 #include 4 using namespace std; 5 6 void* Me

2016-06-04 18:33:36 10617 2

原创 数组中出现次数超过一半的数

分析:6//找出在一个数组中出现次数超过一半的数,可以这样理解,找一个数的中位数  7 //基于这样思想最直观的做法是排序后找中间的数既可,但最好时间复杂度也得O(NlogN)  8 //所以用一种简单的办法来解决  9 //定义两个变量,从第一个数开始找,并记录第一个数为result为需要找的数,它出现的次数初始化为:times=1 10 //以后只要找到和result相

2016-06-17 21:16:06 3656

转载 红黑树详解

转载请标明出处,原文地址:http://blog.csdn.net/hackbuteer1/article/details/7740956一、红黑树概述     红黑树和我们以前学过的AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。不过自从红黑树出来后,AVL树就被放到了博物馆里,据说是红黑树有更好的效率,更

2016-06-07 20:27:15 446

空空如也

空空如也

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

TA关注的人

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