自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 KMPc++实现

#include#include#includeusing namespace std;void getNextArray(char* str2,int* next){ int len = strlen(str2); next[0] = -1; next[1] = 0; int pos = 2; int cn = 0; while(

2017-11-22 16:01:53 476

转载 TCP异常终止(reset报文)

TCP的异常终止是相对于正常释放TCP连接的过程而言的,我们都知道,TCP连接的建立是通过三次握手完成的,而TCP正常释放连接是通过四次挥手来完成,但是有些情况下,TCP在交互的过程中会出现一些意想不到的情况,导致TCP无法按照正常的四次挥手来释放连接,如果此时不通过其他的方式来释放TCP连接的话,这个TCP连接将会一直存在,占用系统的部分资源。在这种情况下,我们就需要有一种能够释放TCP连接的机

2017-11-22 12:21:35 611

转载 对于一个n位正整数a,去掉其中任意k(k<=n)个数字后,剩下的数字按原次序排列可以组成一个新的正整数。设计一个删数算法,使得剩下的数字组成的正整数最小。例如,a=13243221,k=5,输出:12

对于一个n位正整数a,去掉其中任意k(k分析一个n位数,删去k位后,也就是剩下一个 n-k位 数,那么这个数要最小,我们就要保证我们我们得出的数是所有删除后得到的数的最小值。那么怎么保证呢?问题转换一下,如果最后就剩下一位,那么无意结果就是这些数字的最小值; 如果最后剩下两位呢,那么我们所要结果的最高位肯定在给定数的哪个区间呢,在这个区间(从左往右数第一位,从右往左数第二位

2017-10-30 22:07:30 4081 1

转载 c/c++:内存泄露和野指针的概念

内存泄漏 用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元,不能被任何程序再次使用,直到程序结束。即所谓内存泄漏。   注意:内存泄漏是指堆内存的泄漏。 简单的说就是申请了一块内存空间,使用完毕后没有释放掉。它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序申请的一块内存,且没有任何一个指针指向它,那么这

2017-10-28 15:28:56 308

转载 I/O复用select、poll、epoll

I/O复用使得程序能够同时监听多个文件描述符,对于提高程序性能至关重要。I/O复用不仅仅在网络程序中使用,但是我接触到的例子中,TCP网络编程那块使用I/O复用比较多,例如,TCP服务器同时处理监听socket和连接socket.在了解I/O复用之前,我们需要先了解几个概念。1,同步I/O与异步I/O2,LT(水平触发)和ET(边缘触发)POSIX把两个术语定义如下:同

2017-10-26 13:16:56 282

转载 Linux下/proc目录

1. /proc目录Linux 内核提供了一种通过 /proc 文件系统,在运行时访问内核内部数据结构、改变内核设置的机制。proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文

2017-10-26 13:16:03 295

转载 指针和引用的区别

指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。而下面2句

2017-10-25 20:17:36 236

转载 TCP拥塞控制机制

一.拥塞的发生与其不可避免   拥塞发生的主要原因:在于网络能够提供的资源不足以满足用户的需求,这些资源包括缓存空间、链路带宽容量和中间节点的处理能力。由于互联网的设计机制导致其缺乏“接纳控制”能力,因此在网络资源不足时不能限制用户数量,而只能靠降低服务质量来继续为用户服务,也就是“尽力而为”的服务。拥塞其实是一个动态问题,我们没有办法用一个静态方案去解决,从这个意义上来说,拥塞是

2017-10-24 17:53:47 187

转载 二叉树深度优先遍历和广度优先遍历

void widthFirst(Node *root){    queue nodeQueue;    nodeQueue.push(root);        while(!nodeQueue.empty())    {                Node* temp = nodeQueue.front();        cout data    

2017-09-18 17:07:29 389

原创 求二叉树宽度和深度

//二叉树宽度int widthOfBinaryTree(Node *root){    if(root == NULL)        return 0;    queue nodeQueue;    int maxWidth = i;    nodeQueue.push(root);        while(true)    {        in

2017-09-18 12:00:34 566

转载 CentOS/Linux下设置IP地址

1:临时修改:1.1:修改IP地址# ifconfig eth0 192.168.100.1001.2:修改网关地址# route add default gw 192.168.100.1 dev eth01.3:修改DNS# echo "nameserver 8.8.8.8" >> /etc/resolv.conf这个时候就可以上网了,上网的IP地址为19

2017-09-09 14:06:08 227

转载 4种常见的MySQL日志类型

1.错误日志 记录启动、运行或停止mysqld时出现的问题 log-error=d:/mysql_log_err.txt 2.查询日志 记录建立的客户端连接和执行的所有语句(包括错误的)。 log=d:/mysql_log.txt3、二进制日志 记录所有更改数据的语句、还用于主从复制 log-bin=d:/mysql_l

2017-09-09 14:03:11 458

转载 HTTP 请求方式: GET和POST的比较

GET和POST是HTTP的两个常用方法。 什么是HTTP?超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议。HTTP在客户端和服务器之间以request-response protocol(请求-回复协议)工作。 GET - 从指定的服务器中获取数据POS

2017-09-09 13:53:34 264

转载 MySQL之——表数据文件损坏导致数据库无法启动

一、问题日志[plain] view plain copy2017-08-31 14:18:05 4122 [Note] InnoDB: Database was not shutdown normally!  2017-08-31 14:18:05 4122 [Note] InnoDB: Starting crash recovery.

2017-09-08 15:31:41 919

转载 MySQL中四种常用存储引擎的介绍

(1):MyISAM存储引擎:不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表支持3种不同的存储格式,分别是:静态表;动态表;压缩表静态表:表中的字段都是非变长字段,这样每个记录都是固定长度的,优点存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多(因为存储时会按照列的宽度

2017-09-08 15:30:29 186

转载 rsync简介

rsync(rem ote synchronize)是一个远程数据同步工具,可通过 LAN/WAN 快速同步多台主机之间的文件。也可以使用 rsync 同步本地硬盘中的不同目录。rsync是用于替代rcp的一个工具,rsync 使用所谓的 rsync算法进行数据同步,这种算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度非常快。rsync支持大多数的类 Unix 系统

2017-09-08 15:22:17 329

转载 linux设置服务自启动的三种方式

有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务主要用三种方式进行这一操作:ln -s                       在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)chkonfig                命令行运行级别设置ntsysv               

2017-09-08 11:37:54 310

转载 TCP的三次握手

TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k

2017-09-07 10:31:06 3756 2

转载 数据库事务的四大特性以及事务的隔离级别

如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency)  一致性是指事务必须使数据库从一个

2017-08-31 17:01:48 219

原创 总结(20170830)

1.请问这个表达式( (A+B)*C - (D - E)^(F + G) )的前序表达需要够着表达式的二叉树,然后就可以得到表达式的先序,中序和后序表达先序:- * + A B C ^ - D E+ F G中序:A + B * C - D - E ^ F + G后序:A B + C * D E - F G + ^ -2.存储全量QQ用户的性别,使用哪种数据结构最节省空间

2017-08-30 17:00:47 267

转载 美团点评2017秋招笔试真题-运维工程师A

1、数据库索引可以明显提高哪一操作的效率?正确答案: AA SELECTB INSERT INTO … VALUES …C UPDATED DELETE2、数据库:以下哪种锁定方式能提供最佳的并行访问性能?正确答案: DA 列锁定B 表锁定C 块锁定D 行锁定3、从DELETE 语句中省略WHERE 子句,将产

2017-08-30 16:05:28 1521

转载 linux信号捕获相关

linux中一共有32种信号,在/usr/include/bits/signum.h 头文件中可以看到#define    SIGHUP        1   #define    SIGINT        2   #define    SIGQUIT        3   #define    SIGILL        4   #define    SIGTRAP   

2017-08-30 11:28:58 365

原创 腾讯笔试模拟题(int foo[]={1,2,3,4,5,6};cout << (1+3)[foo]-foo[0]+(foo+1)[2])

#includeusing namespace std;int main(){int foo[] = {1,2,3,4,5,6};cout return 0;}程序运行结果为:8因为不理解[foo]是什么意思,就把是输出各项拆开(1+3)[foo]的输出:5foo[0]的输出:1(foo+1)[2]的输出:4结果为5-1+4=8.

2017-08-29 21:23:39 901

转载 美团点评2017秋招笔试真题-运维工程师B

1、数据库:以下哪项不是HASH索引的特征?正确答案: CA MySQL不能确定在两个值之间大约有多少行B 不能使用hash索引来加速ORDER BY操作C 只用于使用“>”或“D 只能使用整个关键字来搜索一行2、用户JANKO 想在有三个列: empid, lastname, 和 salary. 的employee表中插入一行,该用户想输入数据empi

2017-08-29 20:24:12 909

转载 Linux网络命令(5):netstat命令

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收

2017-08-28 16:19:37 422

转载 Linux网络命令(4):traceroute命令

通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,

2017-08-28 15:18:50 331

转载 Linux网络命令(3):ping命令

Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说“ping一下某机器,看是不是开着”、不能打开网页时会说“你先ping网关地址192.168.1.1试试”。它通过发送ICMP ECHO_REQUEST数据包到网络主机(send ICMP ECHO_REQUEST to network hosts),并显示响应情况,这样我们就可以根据它输出的信息来确定目标

2017-08-28 14:50:33 379

转载 Linux网络命令(2):route命令

Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设

2017-08-28 11:13:40 337

转载 linux网络命令(1):ifconfig命令

许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改

2017-08-28 10:34:01 219

转载 Linux执行ls,会引起哪些系统调用

可以通过strace -o ls.txt ls进行查看:open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3 ///打开当前目录这个文件(目录是一种特殊的文件),并返回文件句柄3fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, }) = 0   ///取得当

2017-08-23 19:58:12 1623

转载 /etc/fstab 参数详解及如何设置开机自动挂载

某些时候当Linux系统下划分了新的分区后,需要将这些分区设置为开机自动挂载,否则,linux是无法使用新建的分区的。 /etc/fstab 文件负责配置Linux开机时自动挂载的分区。Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C,D,E,F等。Linux的文件结构是单个的树状结构。最顶部的为根目录,即/。在根目录下,分为多个子目录,

2017-08-23 19:42:31 1452

转载 Linux top命令的用法详细详解

查看多核CPU命令mpstat -P ALL  和  sar -P ALL  说明:sar -P ALL > aaa.txt   重定向输出内容到文件 aaa.txttop命令经常用来监控Linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。本文通过一个运行中的

2017-08-21 16:44:09 345

转载 Linux下两台服务器文件实时同步方案设计和实现

假设有如下需求:假设两个服务器:192.168.0.1 源服务器  有目录 /opt/test/192.168.0.2 目标服务器  有目录 /opt/bak/test/实现的目的就是保持这两个服务器某个文件目录保持实时同步实现方式: 通过rsync+inotify-tools结合来实现需要安装软件:1.  rsync 同步软件

2017-08-21 11:43:58 632

转载 linux中log文件中各个文件对应的内容

/var/log/messages — 包括整体系统信息,其中也包含系统启动期间的日志。此外,mail,cron,daemon,kern和auth等内容也记录在var/log/messages日志中。/var/log/dmesg — 包含内核缓冲信息(kernel ring buffer)。在系统启动时,会在屏幕上显示许多与硬件有关的信息。可以用dmesg查看它们。/var/log/auth.lo

2017-08-21 10:02:06 855

转载 深度剖析什么是 SLI、SLO和SLA?

前言SLO和SLA是大家常见的两个名词:服务等级目标和服务等级协议。云计算时代,各大云服务提供商都发布有自己服务的SLA条款,比如Amazon的EC2和S3服务都有相应的SLA条款。这些大公司的SLA看上去如此的高达上,一般是怎么定义出来的呢?本文就尝试从技术角度解剖一下SLA的制定过程。说SLA不能不提SLO,这个是众所周知的,但是还有一个概念知道的人就不多了,那就是SL

2017-08-18 16:23:02 13567 1

转载 自旋锁spinlock

1, spinlock介绍  spinlock又称自旋锁,线程通过busy-wait-loop的方式来获取锁,任时刻只有一个线程能够获得锁,其他线程忙等待直到获得锁。spinlock在多处理器多线程环境的场景中有很广泛的使用,一般要求使用spinlock的临界区尽量简短,这样获取的锁可以尽快释放,以满足其他忙等的线程。Spinlock和mutex不同,spinlock不会导致线程的状态切换

2017-08-15 21:09:07 315

转载 linux sar命令

sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。本文主要以CentOS 6.3 x64系统为例,介绍sar命令。sar命令常用格式sar [option

2017-08-15 20:28:34 238

转载 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。

链接:https://www.nowcoder.com/questionTerminal/28c1dc06bc9b4afd957b01acdf046e69来源:牛客网#include #include using namespace std;/*解题思路:  (1)把字符串旋转形成另外一个字符串,称为旋转字符串;  (2)求原字符串s1与旋转字符串s2中,最长公

2017-08-15 17:04:33 5604

转载 git命令合并分支代码

对于复杂的系统,我们可能要开好几个分支来开发,那么怎样使用git合并分支呢?合并步骤:1、进入要合并的分支(如开发分支合并到master,则进入master目录)git pull2、查看所有分支是否都pull下来了git branch -a3、使用merge合并开发分支git merge 分支名4、查看合并之后的状态git s

2017-08-15 16:55:35 1873

转载 拼多多笔试题第一题,大数相乘

#include#include#include#includeusing namespace std;const int N = 1e5+10;string c1.c3;int a[N],b[N],c[N];void solve(int a[],int b[].int la,int lb){int i,j;for(i = 0; i != N; ++i)

2017-08-02 20:55:59 583

空空如也

空空如也

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

TA关注的人

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