自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 剑指offer---翻转字符串

题目: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例子: 输入:I am a student 输出:student a am I在线oj:class Solution{private: void Reverse(char* pBegin, char*pEnd) { assert(pB...

2018-06-25 12:29:16 249

原创 双栈排序

题目:请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构 中。给定一个int[ ] number(C++中为vector),其中第一个元素为栈顶,请返回排序后的栈。测试样例: 【1,2,3,4,5】 返回: 【5,4,3,2,1】class TwoStacks {public: vector...

2018-06-25 09:48:57 197

原创 判断是否是平衡二叉树

题目:输入一棵二叉树的根结点,判断该树是否是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。思路:先求出树的高度,然后根据高度差判断是否为平衡二叉树。在线oj:class Solution {public: bool IsBalanced_Solution(TreeNode* pRoot) { if (pRoot ==...

2018-06-25 09:41:02 814

原创 [ LeetCode ]前序、中序遍历二叉树

Binary Tree Preorder Traversal//前序遍历二叉树class Solution {public: vector<int> preorderTraversal(TreeNode *root) { vector<int> res; if (root == NULL) retu...

2018-06-23 09:00:26 160

原创 剑指Offer---从上到下打印二叉树

题目:从上到下打印出二叉树的每个结点,同一层结点按照从左到右的顺序打印。 这道题的实质是二叉树的层序遍历,借助队列来实现。#include <queue>class Solution {public: vector<vector<int> > Print(TreeNode* pRoot) { vector<vector&l...

2018-06-22 18:32:19 212

原创 剑指Offer---对称的二叉树

题目: 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。思路:通过比较二叉树的前序遍历和对称前序遍历序列来判断二叉树是不是对称的。如果是相同的,那么二叉树时对称的。注意:在遍历的二叉树时,需要将遇到的空指针考虑在内。在线oj:class Solution {public: bool isSymmetrical(TreeNo...

2018-06-22 18:26:15 201

原创 表的内连、外连、索引、事务、视图及用户管理

表的内外连接1.内连接(inner join)内连接实际上就是利用where子句对两种表形成的笛卡尔积进行筛选。显示SMITH的名字和部门(1)标准的内连接的方法select ename,dname from emp inner join dept on emp.deptno = dept.deptno and ename = ‘smith’; (2)...

2018-06-09 23:55:50 257

原创 如何在Linux下使用MySQL

查看当前环境下是否安装MySQLrpm -qa | grep -i mysql 如果没有数据,就是未安装。安装MySQLsudo yum install mysql-server mysql-client 开启mysql的服务service mysqld start 第一次开启mysql服务会先初始化数据库的。 第二次就直接开启Mysql服务了。 ...

2018-06-09 23:35:55 298

原创 I/O多路转接---epoll服务器

epoll是改进的poll,几乎结合了poll的所有优点,并将poll的缺点加以改进,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。epoll主要做三件事情:1.创建一个红黑树红黑树结点内容,保存了用户想要告诉操作系统要监控的哪些文件描述符上的哪些事件。2.从驱动到操作系统的回调机制回调机制不需要操作系统一直在等,在事件就绪时,驱动会告诉操作系统,有事...

2018-06-09 19:29:56 260

原创 I/O多路转接---poll服务器实现

poll其实和select服务器实现的功能是一样的,但是poll中有具体的函数来帮助我们实现I/O多路转接。我们来认识一下这些函数。poll函数#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout)pollfd 结构struct pollfd{ int fd; ...

2018-06-07 16:18:43 282

原创 I/O多路转接---select服务器

I/O多路复用是通过一种机制,可以监视多个文件描述符,一旦某个文件描述符就绪,就能通知应用进程进行相应的读写操作。select函数作为一种I/O多路复用的机制,程序会停在select这里等待,直到被监视的文件描述符有一个或多个发生了状态变化。select函数 #include <sys/select.h> #include <sys/time.h> #inclu...

2018-06-07 10:29:12 274

原创 高级IO中的一些重要的概念(fcntl、dup、dup2)

高级IO相关的概念1.用户空间&内核空间现在的操作系统都是采用虚存储器,对于32位的存储器而言,虚拟存储空间为4G(2^32)。操作系统的核心是内核,独立于普通应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核,保证内核的安全,操作系统将虚拟空间划分为两部分,一部分为内核空间,另一部分为用户空间。对于Linux而言,将最...

2018-06-06 20:51:56 517

原创 五种IO模型(详解+形象例子说明)

在网络环境下,通俗的讲,将IO分为两步: 1.等; 2.数据搬迁。 如果要想提高IO效率,需要将等的时间降低。五种IO模型包括:阻塞IO、非阻塞IO、信号驱动IO、IO多路转接、异步IO。其中,前四个被称为同步IO。在介绍五种IO模型时,我会举生活中钓鱼的例子,加深理解。1.阻塞IO(blocking I/O)A拿着一支鱼竿在河边钓鱼,并且一直在鱼竿前等,在等的时候不做其...

2018-06-06 10:39:48 46511 15

原创 STL中一级、二级空间配置器原理分析及实现

考虑到一些容器,如vector、list,会存在一些问题:(1)效率低。动态在堆上开辟一块空间,需要在堆上找合适的内存块。 (2)存在内存碎片。导致需要一块较大的空间时,需要在堆上找合适的内存块找不到。 (3)开销太大。为了管理malloc的空闲空间,每一个独立块的最前面都包含了一个“头部信息”,属于额外开销。 (4)存在内存泄露。 (5)代码复用率低。每个容器都会使用相同的new一块...

2018-06-03 20:32:26 1431

原创 MySql中多表查询(一)

单表查询ifnull(a,b):如果不为空,为a,如果为空,为b.例1.查询工资大于500或者岗位为Manager的雇员,同时满足他们姓名为首字母大学Jselect ename,sal,mgr from emp where (sal>500 or job=’MANAGER’) and ename like ‘J%’; 例2.按照部门编号升序而雇员工资降序排列s...

2018-06-03 18:12:28 1153

空空如也

空空如也

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

TA关注的人

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