自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

L未若的博客

么心么肺,难得糊涂

  • 博客(29)
  • 问答 (3)
  • 收藏
  • 关注

原创 牛客网-访问单个节点的删除

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。给定带删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {}};*/class

2016-08-31 07:25:29 512

原创

1,图(Graph)是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为:G(V,E),  其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合  1,线性表中我们把数据元素叫元素,树中将数据元素叫节点,在图中数据元素,              我们则称之为顶点(Vertex)  2,线性表中可以没有数据元素,称为空表.数中可以没有节点,叫做空树.但是对于图而言,

2016-08-30 08:48:04 1593

原创 TCP_NODELAY,Nagle算法

什么是Nagle算法???使用该算法能够获得那些数据通信特性???或者说,有什么优势呢???Nagle算法:为防止因数据包过多而发生网络过载,Nagle算法在1984年诞生了。应用于TCP层,非常简单。其使用不使用导致如下的差异:  如上图:展示了通过Nagle算法发送字符串“Nagle”和未使用Nagle算法的差别。  可以得到如下结论:  只有收到前一数

2016-08-29 16:05:39 1068

转载 最长公共子序列问题 和 最长公共子串问题

问题描述:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。 例如:X(A,B,C,B,D,A,B)        Y(B,D,C,A,B,A) 那么最长公共子序列就是:

2016-08-18 15:38:50 721

转载 只用位运算来实现整数的加减乘除四则运算 (转载,还没有来得及整理!!!!)

听同学百度二面中,不准用四则运算操作符来实现四则运算。一想就想到了计算机组成原理上学过的。位运算的思想可以应用到很多地方,这里简单的总结一下用位运算来实现整数的四则运算。首先回忆计算机组成原理学过的内容,数字在机器ALU运算逻辑单元内部是以补码形式进行运算的,因为补码有两个优势:1、能做到符号位和数值部分一起运算,这样无需单独考虑符号。2、能把减法运算转化为加法运算来处理。

2016-08-18 15:27:23 897

转载 树中两个结点的最低公共祖先(剑指offer!!!)

面试题050】树中两个结点的最低公共祖先题目:    树中两个节点的最低公共祖先。 思路一:    输入两个树节点,求他们的最低公共祖先,——如果是二叉树,而且是二叉搜索树,那么是可以找到公共节点的。二叉搜索树都是排序过的,位于左子树的节点都比父节点小,而位于右子树上面的节点都比父节点大。如果当前节点的值比两个结点 的值都大,那么最低的共同的父节点一定是在当

2016-08-18 14:38:00 826

原创 atoi()函数的实现

atoi()函数的功能:将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。写atoi函数的时候需要注意一下几点1. 字符串前的空白2. 字符串所表示数值的正负号

2016-08-18 14:05:50 2944

转载 约瑟夫环问题

约瑟夫环问题:一圈共有N个人,开始报数,报到M的人自杀,然后重新开始报数,问最后自杀的人是谁?如图:内环表示人排列的环,外环表示自杀顺序;上面N=41,M=3。最普通办法就是模拟整个过程:建一个bool数组,true表示此人还活着,false表示已经自杀。可以模拟整个过程[cpp] view plain copy #include  using 

2016-08-18 11:12:58 355

转载 二叉树的镜像 (剑指offer)!!!(两个有序链表的合并,链表的逆置)

面试题19:二叉树的镜像(来自《剑指Offer》)题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像。二叉树结点的定义如下:[cpp] view plain copy print?struct BinaryTreeNode  {      int data;      BinaryTreeNode *Left;      BinaryTreeNod

2016-08-18 11:07:08 538

原创 C++默认编写并调用了那些函数(构造,析构,赋值)!!!

1,什么时候empty class(空类),不再是一个empty class呢???2,对于创建的类而言,它的大小是多少呢???对象呢???如下代码:#include using namespace std;class A{ int a; char b; public: void print

2016-08-16 15:18:41 480

原创 进程间通信

1,进程中的两种关系  进程同步与进程互斥  1,顺序程序特征(顺序性,封闭性,确定性,可再现性)  2,并发程序的特征(共享性,并发性,随机性)  互斥:由于进程间要求资

2016-08-16 14:22:46 410

转载 error: cast from ‘char*’ to ‘int’ loses precision

编译时出现错误:        error: cast from ‘char*’ to ‘int’ loses precision原因:程序中存在char* addrCom; addrCom= ......//赋值 if(-1 == (int)addrCom) //导致编译出错 { ...... } 上面是隐式转换,将其改为标准C++显示类型转换:

2016-08-12 09:28:14 5107

原创 一个简单线程池的实现

什么是线程池???1,包含若干个线程,是线程的集合  线程池当中的线程个数不是越多越少,太多了会增加系统的开销。太少了又会降低并发量。  所以线程池当中的线程的个数有严格的要求  若干个线程通常都小于并发的任务量2,线程池中的线程用于执行大量的相对短暂的任务  当某一个时刻来了大量的并发任务时,我们要用若干个相对较少的线程来调度这些大量的任务。。。由于线程的  个数小于

2016-08-09 17:59:35 436

转载 字符串(替换空格-剑指offer!!!)

C/C++中:每个字符串都以字符'\0'作为结尾,这样我们就能很方便的找到字符串的最后尾部。但是由于这个特        点,每个字符串中都有一个额外字符的开销,我们要防止越界  为了节省内存,C/C++把常量字符串放到单独的一个内存区域。当几个指针赋值给相同的常量字符串时,它们实际上会指向相同的内存地址。但用常量内存初始化数组,情况却有所不同。我们来看看下面这个代码:#inc

2016-08-08 15:03:02 613

原创 POSIX条件变量(生产者,消费者)

POSIX条件变量1,当一个线程互斥的访问条件变量的时候,它发现这个变量当前的状态不满足这个线程得以继续执行的要求  就需要等待其它线程对该变量进行更改,直到满足它的要求,不然的话,它什嘛也不做。。。。。。。。。  等待条件的满足。这个时候呢,,,就需要用到条件变量  如上,一个全局变量n = 0;  两个线程,都有加锁机制,一旦进入临界区,当线程1进入临界区之后,那么

2016-08-07 23:49:10 934 5

原创 POSIX信号量与互斥锁(生产者,消费者)

POSIX信号量相关函数  POSIX信号量的打开操作跟POSIX消息队列,共享内存的打开方式是一样的    sem_open(打开),sem_close(关闭),sem_unlink(删除一个信号量)  sem_open - initialize and open a named semaphore  sem_close - close a named semap

2016-08-07 15:30:21 1470

原创 线程的基本属性(分离,栈大小,保护区,竞争,调度并发)以及TSD特定数据

线程的属性:  我们知道,在创建一个线程的时候可以指定一个线程的属性,通过第二个参数来指定:pthread_attr_t  *attr.  一般情况下,我们都将这个参数设置为空,表示这个线程使用的是默认属性  那么如果,我们要将线程属性设定为一个特定的值的话,这时候:我们就需要一个线程属性变量(类型:pthread_attr_t),这种类型的变量需要首先初始化后才能用,可以调用这个函数

2016-08-06 16:47:51 1030

转载 快排的优化(简直神乎其神了!!!)

本文转载于:http://www.blogjava.net/killme2008/archive/2010/09/08/quicksort_optimized.html    quicksort可以说是应用最广泛的排序算法之一,它的基本思想是分治法,选择一个pivot(中轴点),将小于pivot放在左边,将大于pivot放在右边,针对左右两个子序列重复此过程,直到序列为空或者只

2016-08-06 00:35:40 9170 2

原创 为什么会引入线程(进程,优缺点,模型)!!!

1,为什么会产生或者引入线程呢???2,程序,进程,线程之间的区别???3,线程的优缺点,线程的模型(1:1,N:M,N:1)???

2016-08-05 20:14:49 18168 2

原创 POSIX线程,线程的客户/服务通信(pthread_join,pthread_exit,pthread_detach,pthread_self)

我们所熟知的线程函数:1,pthread_create,pthread_join,pthread_exit,pthread_detach,pthread_self2,如何避免产生僵尸线程(进程)3,多线程引发的客户/服务通信

2016-08-05 19:42:38 836

转载 Linux 僵尸进程

本文转载:http://www.cnblogs.com/hazir/p/zombie_process.html僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸僵尸进程如何产生的?如果一个进程在其终止的时候,自己就回收所有分配给它的资源,系统就不会产生所谓的僵尸进程了。那么我们说一个进程终止之后,还保留哪些信息?为什么终止之后还需要保留这

2016-08-05 16:02:55 420

原创 初始FTP

FTP简介:1,文件传输协议FTP(File Transfer Protocol由RFC959描述)2,FTP设计的目的是为了不同主机之间高效的文件传输,能够屏蔽不同主机不同的文件系统的差异3,工作在TCP/IP协议族的应用层,传输层使用的是TCP协议,是基于客户/服务器模式工作的FTP所支持的文件类型(因为是在不同主机的不同文件系统之间进行数据传输,文件共享):1,A

2016-08-05 00:18:39 942

转载 旋转数组的最小数字(剑指offer)

题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.  这道题的直观解法并不难,从头到尾遍历数组一次,我们就能找出最小的元素.这种思路的时间复杂度显然是O(N).但是这个思路没有利用输入旋转数组的特性,肯定达不到面

2016-08-03 17:33:47 416

原创 算法的简单概况

1. 字典树(单词搜索树)      Trie是个简单但实用的数据结构,通常用于实现字典查询。我们做即时响应用户输入的AJAX搜索框时,就是Trie开始。本质上,Trie是一颗存 储多个字符串的树。相邻节点间的边代表一个字符,这样树的每条分支代表一则子串,而树的叶节点则代表完整的字符串。和普通树不同的地方是,相同的字符串前 缀共享同一条分支。还是例子最清楚。给出一组单词,inn, int, a

2016-08-03 14:30:18 1659

转载 二维数组的查找(剑指offer)

数组:  可以说是最简单的一种数据结构,它占据一块连续的内存并按照顺序存储数据.创建数组时:我们需要首先制定数组的容量的大小,然后根据大小分配内存.即使我们只在数组中存储一个数字,也需要为所有的数据预先分配内存.因此数组的空间效率不是很好,经常会有空闲的区域没有得到充分的利用.....  由于数组中的内存都是连续的,于是我们可以根据下标在O(1)时间(直接检索下标获得存储的数据

2016-08-03 13:53:26 447

转载 两个链表的第一个公共节点(剑指offer)

题目:输入两个链表,找出它们的第一个公共节点.链表节点定义如下:struct ListNode{ int m_key; ListNode* m_pNext;}面试的时候,碰到这道题,我们的第一反应蛮力法:在第一个链表上顺序遍历每个节点,每遍历到一个节点的时候,在第二个链表上顺序遍历每个节点,每遍历到一个节点的时候,在第二个链表上顺序遍历每个节点,如果在第二个

2016-08-03 13:52:30 486

原创 虚拟存储,内存分配,页面置换

虚拟存储,虚拟内存什嘛关系???内存如何分配???页面又按何种方式置换???

2016-08-01 21:30:37 1995

转载 有关海量数据的处理简单总结

本文转载与:http://my.oschina.net/winHerson/blog/209420第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法, 比如模1000,把整个大文件

2016-08-01 21:30:02 543

转载 外排序-多路归并

本文转载:http://www.cnblogs.com/huangxincheng/archive/2012/12/19/2824943.html说到排序,大家第一反应基本上是内排序,是的,算法嘛,玩的就是内存,然而内存是有限制的,总有装不下的那一天,此时就可以来玩玩外排序,当然在我看来,外排序考验的是一个程序员的架构能力,而不仅仅局限于排序这个层次。 一:N路归并排序

2016-08-01 21:27:55 7441

空空如也

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

TA关注的人

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