自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hyacinth_Dy

学习分享

  • 博客(92)
  • 收藏
  • 关注

原创 死锁的四个必要条件

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

2017-04-11 19:54:03 53956

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

首先是Comm.h的代码#include<stdio.h>#include<string.h>#include<sys/types.h>#include<sys/ipc.h>#include<sys/msg.h>#define SERVER_TYPE 1#define CLIE

2019-03-13 19:05:14 327

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

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

2017-08-30 19:24:25 1019

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

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

2017-08-30 15:00:15 2417

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

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

2017-08-29 21:22:05 2084

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

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

2017-08-28 13:45:26 365

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

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

2017-08-27 18:48:21 3198

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

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

2017-08-08 23:53:13 411

原创 大数据面试总结

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

2017-08-08 23:30:36 677

原创 STL-list容器使用

list结点的定义

2017-08-08 20:36:19 235

原创 布隆过滤器

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

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

原创 位图

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

2017-08-07 21:49:41 1474

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

vector相关操作

2017-08-06 22:20:31 277

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

题目:求一个无序数组的中位数。 如:{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 867

原创 CVTE水果问题

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

2017-08-06 21:30:51 271

原创 Linux小项目-群聊系统

项目名称:chat_room群聊系统背景知识与主要技术: 熟悉Linux基本指令的使用(ls,cd,make,mkdir,top,basename,pwd,cp,mv,rm,touch) 熟悉linux开发环境,熟练使用vi/vim ,gcc/g++,gdb,make,makefile 了解网络,熟悉tcp ip udp协议的使用 熟练掌握C/C++,熟练使用C++STL中的容器 熟悉套

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

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

采用shell脚本实现希尔排序

2017-07-31 19:28:22 635

原创 希尔/shell排序

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

2017-07-31 19:22:49 287

原创 面试题:插入排序

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

2017-07-31 19:20:44 339

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

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

2017-07-30 23:06:02 260

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

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

2017-07-30 15:47:52 426

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

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

2017-07-30 15:19:25 444

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

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

2017-07-28 21:29:18 232

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

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

2017-07-28 20:53:01 505

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

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

2017-07-27 19:26:02 527

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

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

2017-07-27 19:02:42 2126

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

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

2017-07-26 20:45:12 322

原创 二叉树的镜像

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

2017-07-25 18:54:57 203

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

题目:元素出栈、入栈顺序的合法性。如:入栈的序列(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 321

原创 二叉树的层序遍历

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

2017-07-22 08:59:26 342

原创 给定一个整数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 397

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

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

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

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

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

2017-07-16 21:32:29 476

原创 逆置反转单链表

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

2017-07-16 21:23:49 510

原创 不用加减乘除做加法

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

2017-07-16 20:01:43 274

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

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

2017-07-15 13:27:57 225

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

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

2017-07-15 12:40:05 296

原创 shared_ptr循环引用问题

循环引用的情况

2017-07-15 12:34:25 207

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

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

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

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

题目 给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间内删除该结点,链表结点与函数定义如下。struct ListNode{ int _data; struct ListNode* _next;};void DeleteNode(ListNode **pHead,ListNode *pDelNode)思路分析:单链表中删除结点pDel的方法一般是遍历链表找到删除

2017-07-09 16:03:13 226

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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