剑指offer之字符流中第一个不重复的字符

题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次...

2018-08-07 16:26:25

阅读数 45

评论数 0

设计模式之单例模式

/* 1.单例模式的类只提供私有的构造函数 2.类定义中含有一个该类的静态私有对象 3.该类提供了一个静态的公有的函数用于创建它本身的静态私有对象 */ class Singleton { public: static Singleton* GetInstance() { if(pIns...

2018-08-05 21:38:48

阅读数 47

评论数 0

strcpy、strncpy和memcpy的用法与区别详解

一、strcpy函数原型:char* strcpy(char* dest,const char* src)功能:把src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间,返回指向dest的指针。需要注意的是,src和dest所指内存区域不可以重叠且dest必须需有足够的空间来容纳...

2018-06-19 21:07:27

阅读数 93

评论数 0

剑指offer之和为S的两个数

题目描述:输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。class Solution {//递增排序的数组,定义两个指针,一个指向首,另一个指向尾,相向而行,两数距离越远,相乘之积越小 public: vec...

2018-06-09 15:47:16

阅读数 45

评论数 0

剑指offer之树的子结构

题目描述:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)typedef struct TreeNode { int val; TreeNode* leftchild; TreeNode* rightchild; }; class Solution ...

2018-06-08 21:20:50

阅读数 46

评论数 0

剑指offer之表示数值的字符串

题目描述:   请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和&...

2018-06-02 21:20:30

阅读数 47

评论数 1

STL之序列式容器详解

所谓序列式容器,其中的元素都可序,但未必有序,C++语言本身提供了一个序列式容器array,STL另外再提供vector、list、deque、stack、queue、priority-queue等序列容器。其中stack和queue由于只是将deque改头换面而成,技术上被归类为一种配接器。下图...

2018-05-30 19:15:55

阅读数 122

评论数 0

剑指offer之丑数

题目描述:把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。class Solution { public: int GetUglyNumber_Solution...

2018-05-30 13:32:37

阅读数 52

评论数 0

剑指offer之打印矩阵

题目描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.class Solution...

2018-05-24 19:24:45

阅读数 40

评论数 0

剑指offer之二叉搜索树的后序遍历序列

题目描述:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。bool VerifySquenceOfBST(int sequence[],int len) { if(sequence == nullptr |...

2018-05-22 15:52:42

阅读数 32

评论数 0

剑指offer之删除链表中重复的结点

题目描述:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为...

2018-05-20 16:09:17

阅读数 34

评论数 0

剑指offer之在o(1)时间内删除链表结点

typedef struct ListNode { int val; ListNode* next; }; void DeleteNode(ListNode* pListHead,ListNode* pToBeDeleted) { if(!pListHead || !pToBeDeleted...

2018-05-20 14:25:32

阅读数 29

评论数 0

剑指offer之栈的压入、弹出序列

题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度...

2018-05-18 20:04:07

阅读数 24

评论数 0

剑指offer之反转链表

题目描述:输入一个链表,反转链表后,输出链表的所有元素。//根据栈的先进后出,将链表元素入栈,出栈。 class Solution { public: ListNode* ReverseList(ListNode* phead) { if(phead == NULL || phead-&...

2018-05-17 20:35:19

阅读数 39

评论数 0

剑指offer之从尾到头打印链表

题目描述:输入一个链表,从尾到头打印链表每个节点的值。class Solution//利用栈的先进后出,先将数据压入栈中,然后出栈,将数据存入数组中,返回数组值,打印出来的顺序就是尾到头 { vector<int> PrintList(ListNode...

2018-05-17 16:29:32

阅读数 31

评论数 0

剑指offer之调整数组顺序使奇数位于偶数前面

题目描述:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。//开辟一个同类型的新数组,遍历完原数组,遇到奇数,插入到新数组;遍历完原数组,遇到偶数,插入到新数组。 class...

2018-05-16 14:49:31

阅读数 30

评论数 0

剑指offer之平衡二叉树

题目描述:输入一颗二叉树,判断该二叉树是否为平衡二叉树。typedef struct TreeNode { TreeNode* left; TreeNode* right; }; class Solution { public: int TreeDepth(TreeNode *proot)...

2018-05-14 17:10:52

阅读数 28

评论数 0

剑指offer之用两个栈实现队列

题目描述:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。代码实现://栈A用来作入队列 //栈B用来出队列,当栈B为空时,栈A全部出栈到栈B,栈B再出栈(即出队列) class Solution { public: void push(int node...

2018-05-11 17:15:22

阅读数 41

评论数 0

详解Libevent网络库

项目中要用到libevent,所以就自学了libevent,参考资料为张亮的《libevent源码深度剖析》和《linux高性能服务器编程》Libevent简介Libevent是开源社区一款高性能的I/O框架库,其具有如下特点:1.跨平台支持。Libevent支持Linux、UNIX和Window...

2018-05-06 14:36:06

阅读数 2931

评论数 0

glibc内存管理之ptmalloc

本文参考了华庭的《glibc内存管理ptmalloc源代码分析》和优秀博客。一、基础知识    下图为Linux内核32位模式下进程经典布局图:上面个段的含义如下:text:存放程序代码的,编译时确定,只读;data:存放程序运行时就能确定的数据,可读可写;bss:定义而没有初始化的全局变量和静态...

2018-05-03 20:14:13

阅读数 138

评论数 0

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