自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 死锁的四个必要条件

死锁产生的四个必要条件 互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。 不可剥夺条件:进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺,而只能由获得该资源的进程资源...

2017-04-11 19:54:03 51421 0

原创 消息队列实现从一个进程向另一个进程发送一个数据块的方法

首先是Comm.h的代码 #include<stdio.h> #include<string.h> #include<sys/types.h> #include&am...

2019-03-13 19:05:14 243 0

原创 哈希(HASH)冲突的处理方法

通过构造良好的哈希函数可以减少冲突,但一般不能完全避免冲突。因此解决冲突是哈希法的另一个关键问题。

2017-08-30 19:24:25 867 0

原创 求先递增在递减数组中的最大值

题目:一个数组先从小到大递增在从大到小递减,找出数组的最大值。

2017-08-30 15:00:15 1872 0

原创 动态规划之回文最小分割数

给定一个字符串str把str全部切成回文子串的最小分割数。

2017-08-29 21:22:05 1758 0

原创 字符串中找连续最长的数字串

字符串中找连续最长的数字串

2017-08-28 13:45:26 339 0

原创 2017滴滴秋招笔试编程题-求连续子数组的最大和

题目:输入一个整型数组,数组里有正数也有负数,数组中的一个或者连续多个整数组成一个子数组,求所有子数组的和的最大值,要求时间复杂度为O(n)。 例如:输入的数组为{1,-2,3,10,-4,7,2,-5},和最大的子数组为{3,10,-4,7,2},输出连续子数组的最大和是8。 思路分析:我们可...

2017-08-27 18:48:21 3085 0

原创 图-迪杰斯特拉(dijkstra)算法

迪杰斯特拉算法:是一种典型的最短路径算法,用于计算一个结点到其他结点的最短路径,主要特点是以起始点为中心向外层层扩展(广度优先思想),直到扩展到终点。 算法思想:找到离源点最近的一个点,找到以该点为中心,找到源点到其他节点的最短路径。 举例详细分析 采用邻接矩阵存储图,顶点之间不可达记为...

2017-08-08 23:53:13 370 0

原创 大数据面试总结

1、给出一个超过100G的log file,log中存着ip地址,设计算法找到出现次数最多的ip地址? 采用哈希切割将IP相同的文件都映射到同一个文件中,在一次统计每个文件ip的个数,求出最多的,如果一个ip出现的次数特别多,切割之后还是无法加载到内存中,我们可在对这个文件进行切割(普通切割)分...

2017-08-08 23:30:36 615 0

原创 STL-list容器使用

list结点的定义

2017-08-08 20:36:19 216 0

原创 布隆过滤器

布隆过滤器 他实际上是一个很长的二进制向量和一系列随机映射函数,用于检索一个元素是否在一个集合中,当一个元素被加入到集合中,通过K个hash函数将元素映射到位队列的K个点中,即将对应的比特位置为1,检索时我们只需要知道这些点是不是1就能大约知道这个元素是不是再集合中。如果这些点中任何一个为0,就...

2017-08-07 22:15:48 383 2

原创 位图

位图实现:在位图中采用比特位表示对应的元素存在或者不存在0:不存在 1:存在,例如一个int整数有32个比特位可以表示0-31个整数。 实现代码 class BitMap { public: BitMap(int size = 100)//size表示你需要表示元素的个数 { ...

2017-08-07 21:49:41 1448 0

原创 熟悉STL顺序容器的使用之vector

vector相关操作

2017-08-06 22:20:31 262 0

原创 寻找无序数组的中位数

题目:求一个无序数组的中位数。 如:{2,5,4,9,3,6,8,7,1}的中位数为5,{2,5,4,9,3,6,8,7,1,0}的中位数为4和5。 要求:不能使用排序,时间复杂度尽可能高 提示:考虑堆或者快排思想解决。

2017-08-06 22:13:40 725 0

原创 CVTE水果问题

题目:本公司现在要给公司员工发波福利,在员工工作时间会提供大量的水果供员工补充营养。由于水果种类比较多,但是却又不知道哪种水果比较受欢迎,然后公司就让每个员工报告了自己最爱吃的k种水果,并且告知已经将所有员工喜欢吃的水果存储于一个数组中。然后让我们统计出所有水果出现的次数,并且求出大家最喜欢吃的前...

2017-08-06 21:30:51 263 0

原创 Linux小项目-群聊系统

项目名称:chat_room群聊系统 背景知识与主要技术: 熟悉Linux基本指令的使用(ls,cd,make,mkdir,top,basename,pwd,cp,mv,rm,touch) 熟悉linux开发环境,熟练使用vi/vim ,gcc/g++,gdb,make,makefile 了...

2017-08-02 22:27:23 4513 5

原创 shell脚本实现希尔(shell)排序

采用shell脚本实现希尔排序

2017-07-31 19:28:22 598 0

原创 希尔/shell排序

题目:采用希尔排序对一组无序元素由小到大排序 实现代码 void ShellSort(int *arr, int size)//希尔排序 { if (NULL == arr || size <= 0) return; int gap = size; ...

2017-07-31 19:22:49 267 0

原创 面试题:插入排序

采用插入排序对一组无序元素进行排序

2017-07-31 19:20:44 311 0

原创 面试题-前序中序序列重建二叉树

题目:根据某二叉树的前序中序序列重建二叉树,假设前序中序序列中不包含重复的数字。树的结点定义如下。

2017-07-30 23:06:02 247 0

原创 剑指offer面试题-二叉搜索树转换成一个排序的双向链表

题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表,要求不能创建任何新的结点,只能调整树中节点的指向,树的结点定义如下:

2017-07-30 15:47:52 394 0

原创 C++的单例模式与线程安全单例模式(懒汉/饿汉)

单例模式:是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。 单例类的实现 构造函数声明为私有(private)或者保护类型(protected),内部定义一个private的static的类类型指针,...

2017-07-30 15:19:25 428 0

原创 剑指offer-树中两个节点的最低公共祖先

对于这个问题不同的条件可以有不同的解法 树是二叉树且是二叉搜索树。

2017-07-28 21:29:18 217 0

原创 判断一棵树是不是完全二叉树

完全二叉树:前n-1层结点都是满的,第n层不满的话,只能是缺右孩子,左边是满的。

2017-07-28 20:53:01 465 0

原创 判断一颗二叉树是否是另一颗树的子树

输入两棵二叉树A和B判断B是不是A的子树

2017-07-27 19:26:02 445 0

原创 面试题:判断一个节点是否在一棵二叉树中

判断一个节点是否在一棵二叉树中

2017-07-27 19:02:42 1903 0

原创 剑指offer面试题-二叉树的前序中序后序遍历

题目 传入一个树的根节点,分别采用非递归实现树的前序,中序,后序遍历。节点

2017-07-26 20:45:12 249 0

原创 二叉树的镜像

题目:完成一个函数,输入一个二叉树,该函数输出他 结点定义如下 typedef struct TreeNode { TreeNode(char data) :_pleft(NULL) , _pright(NULL) , _data(data) {} ...

2017-07-25 18:54:57 190 0

原创 元素出栈、入栈顺序的合法性

题目:元素出栈、入栈顺序的合法性。如:入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1),则合法。入栈的序列(1,2,3,4,5),出栈序列为(4,5,2,3,1),则不合法。

2017-07-22 09:08:13 293 0

原创 二叉树的层序遍历

题目:实现一颗二叉树的层序遍历,树的结点定义如下

2017-07-22 08:59:26 296 0

原创 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。

题目:给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!=3 628 800,N!的末尾有两个0。

2017-07-22 08:51:32 364 0

原创 剑指offer面试题-判断链表是否带环并求环的入口点和环的长度

题目:输入一个链表的头节点,判断链表是否带环,若带环,求环的入口点,和环的长度。 判断链表是否带环

2017-07-17 21:02:49 1851 1

原创 求链表中倒数第K个节点

题目:输入一个链表输出链表中的第K个节点,(计数从1开始)。

2017-07-16 21:32:29 446 0

原创 逆置反转单链表

定义一个函数,输入一个链表的头节点,反转链表反转链表并输出反转后的链表头节点。

2017-07-16 21:23:49 492 0

原创 不用加减乘除做加法

题目: 写一个函数,求两个整数之和,要求函数体内不得使用+ - * / 四则运算符号。(也不能使用++)。

2017-07-16 20:01:43 264 0

原创 剑指offer面试题-合并两个有序链表

题目: 输入两个递增有序的链表,合并这两个链表并使新链表中的结点仍然是有序的,具体示例如下图,链表结点定义如下: struct ListNoe { ListNoe() :_next(NULL) , _data(0) {} ListNoe *_next; ...

2017-07-15 13:27:57 205 0

原创 实现1+2+3...+n,要求不能使用乘除法、循环、条件判断、选择相关的关键字

利用构造函数和静态数据成员 class Temp { public: Temp() { ++n; sum += n; } static void reset() { n = 0; sum = 0...

2017-07-15 12:40:05 289 0

原创 shared_ptr循环引用问题

循环引用的情况

2017-07-15 12:34:25 191 0

原创 模拟实现boost库里的智能指针

智能指针 什么是智能指针呢,它是行为类似于指针的类对象,但这种对象还有其他功能。我们为什么要封装智能指针类对象呢?这是因为C++中的动态内存需要用户自己来维护,动态开辟的空间,在出函数作用域或者程序正常退出前必须释放掉,否则会造成内存泄漏,所以我们会定义一个类来封装资源的分配和释放,在构造函数完...

2017-07-11 12:55:24 270 2

原创 在O(1)时间删除链表结点

题目 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间内删除该结点,链表结点与函数定义如下。 struct ListNode { int _data; struct ListNode* _next; };void DeleteNode(ListNode **pHea...

2017-07-09 16:03:13 217 0

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