自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【PHP】变量的学习笔记

/** * Theme:变量的学习1 * Date: 2020/3/11 * Time: 18:13 */变量的命名规则: 1、在PHP中变量的名字必须是以“$”符号开始 2、名字必须由字母、数字和下划线构成,但是不能以数字开头 3、PHP允许中文变量,但是不建议被使用eg:$var;$var_1; //正确$1_var; //错误$星星 = '...

2020-03-11 23:12:51 191

原创 【链接】复习资料汇总

(一)linuxhttps连接: https://blog.csdn.net/xiaopang_yan/article/details/78709574 https://blog.csdn.net/weixin_42139375/article/details/83478418 (二)C++对象的内存管理: https://blog.csdn.net/u012658346/...

2019-10-10 23:21:54 207

原创 【算法】深度优先和广度优先

本文只是总结的相关概念,仅供自己复习,严禁转载,文末附有本文内容涉及的文章链接,请点开链接查看原文!(一)深度优先 深度优先搜索属于图算法的一种,是一个针对图和树的遍历算法,英文缩写为DFS(Depth First Search)。深度优先搜索利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。一般用堆数据结构来...

2019-09-09 18:28:33 1829

原创 【linux】git的使用

(一)安装git 1.1 挂载光盘 -> mount /dev/cdrom /mnt // 需要切换到管理员权限 1.2 配置yum源 ->cd /etc/yum.repos.d/ ->ls //查看配置 1.3 验证 -> yum repolist ...

2019-08-06 22:23:25 195

原创 【linux】DNS解析过程简单了解

注:此文章只是为了做笔记,方便以后查阅,内容大部分只是摘录,具体内容可以通过https://blog.csdn.net/baidu_37964071/article/details/80500825了解。(一)DNS协议的概念 DNS —> Domain Name System —> 域名系统的英文缩写;它所提供的服务是用来将主机名和域名转换为IP地址的工作。(二)域...

2019-08-04 21:49:54 832

原创 【C\C++】C和C++的内存管理

(一)内存分布 1.1 CBSS段: 用来存放程序中未初始化的全局变量和未初始化的静态变量。 数据段:用来存放程序中已初始化的全局变量和已经初始化的静态变量。 代码段:用来存放程序执行代码。在代码段中,也有可能包含一些只读的常数变量,例如字符串常量等 堆:堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc/free等函数分配...

2019-07-24 19:45:24 186

原创 【数据库】索引

(一)索引 1.1 概念 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。在没有索引的情况下,数据库会遍历全部数据后选择符合条件的;而有了相应的索引之后,数据库会直接在索引中查找符合条件的选项。 1.2 创建索引的好处 (...

2019-07-21 18:09:59 383

原创 【数据库】存储引擎

(一)概念 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。例如,你在研究大量的临时数据,你也许需要使用内存MySQL存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的...

2019-07-21 14:55:25 223

原创 【LeetCode】表现良好的时间段

题目描述: 给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格 大于「不劳累的天数」。 请你返回「表现良好时间段」的最大长度。示例 1:输入:hours = [9,9,6...

2019-07-20 18:06:36 2119 1

原创 【C++】实现atoi函数

注:请勿转载;(一)函数介绍 atoi() 函数会扫描参数 str 字符串,跳过前面的空白字符(例如空格,tab缩进等,可以通过 isspace() 函数来检测),直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。最后返回转换后的整型数;如果 str 不能转换成 int 或者 str 为空字符串,那么将返回 0。(二)...

2019-07-17 17:19:43 827

原创 【算法】BFS算法练习

(一)问题描述: 给定一个字符串以及多个子串,对于在字符串中出现的子串可以多次移除,求多次移除后能够得到的最短字符串长度。输入: 第一行为一个字符串,第二行为多个子串,字符串长度大于0输出: 多次移除后能够得到的最短字符串长度示例1:输入:第一行:"ccdaabcdbb"第二行:["ab","cd"]输出:第一行:2解释:ccdaabcdbb ...

2019-07-10 00:56:16 578

原创 【算法】二叉树的创建与遍历

【未完待续中】(一)二叉树结构的定义typedef struct BiNode { char data; struct BiNode* lchild; struct BiNode* rchild;}BiNode, *PNode;(二)创建二叉树2.1 创建思想演示 2.2 代码实现void CreateTree(PNode &...

2019-07-05 23:42:59 545

原创 【linux】死锁的概念和解决办法

(一)死锁的概念 可以理解成多个并发进程因争夺非共享的系统资源而产生相互等待的现象。存在两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程在占有资源和释放资源期间,其他线程将不能抢占该资源。当线程互相持有对方所需要的资源时,会互相等待对方释放资源,如果线程都不主动释放所占有的资源,将产生死锁。(二)死锁产生必须同时满足的4个条件...

2019-07-04 21:08:47 578

原创 【linux】粘包的产生和解决

(一)预备知识 tcp是以流动的方式传输数据,没有边界的一段数据。像打开自来水管一样,连成一片,没有边界。传输的最小单位为一个报文段(segment)。tcp Header中有个Options标识位,常见的标识为mss(Maximum Segment Size)指的是:连接层每次传输的数据有个最大限制MTU(Maximum Transmission Unit),一般是1500比特,...

2019-07-03 23:55:24 1055 1

原创 【算法】二路归并递归与非递归思想

(一)公共函数 1.1 头文件:#include <iostream>#include <vector>#include <stack>#include <queue>#include <iterator>#include <time.h>#include <string>#includ...

2019-07-03 00:06:27 843

原创 【linux】进程地址空间

(一)进程空间分布图: 一个linux进程的虚拟地址空间分布如下图所示,分为用户空间和内核空间,对于一个32位操作系统来说,4GB的空间分成两部分,低地址的0~3G给用户空间,高地址的3G~4G给内核空间 (二) 用户空间 2.1 只读数据段(.rodata,又叫做常量数据段)...

2019-06-30 16:18:19 212

原创 【数据结构】八大排序复杂度分析、使用条件分析

(一)复杂度分析 1.1 冒泡排序 冒泡排序不管序列是怎样,都是要比较n(n-1)/2次的,最好、最坏、平均时间复杂度都为O(n²),需要一个临时变量用来交换数组内数据位置,所以空间复杂度为O(1)。有很多人说冒泡排序的最优的时间复杂度为O(n),其实这是在代码中使用一个标志位来判断是否已经排序好的,是冒泡排序的优化版,如果元素已经排序好,那么循环一次就直接退出。...

2019-06-30 14:47:22 3806

原创 【算法】寻找公共字符串

(一)只求两个字符串的公共长度 1.1 思路描述 假设求字符串X = “ABCBDAB”,长度记为xlen; Y = “BDCABA”,长度记为ylen; 那么先申请一个二维数组row = xlen,col = ylen;将二维数组中的每个位置初始化为0,每个格子用来记录当前的最长公共子串的长度,直到最后一个格子。如下图所示: ...

2019-06-28 22:39:04 1527

原创 【技术篇】查看linux系统负载情况

什么是系统平均负载? 系统平均负载是指在特定时间间隔内运行队列中的平均进程数。 如果每个CPU内核的当前活动进程数不大于3的话,那么系统的性能是良好的。如果每个CPU内核的任务数大于5,那么这台机器的性能有严重问题。1可以被认为是最优的负载值。负载是会随着系统不同改变得。(一)uptime 用于获取主机运行时间和查询linux系统负载等信息。 内容说明...

2019-06-23 17:10:18 6488 2

原创 【linux操作系统】进程和线程

(一)进程 1.1 进程的概念 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 1.2 进程的优势 (1)每个进程互相独立,...

2019-06-18 16:37:32 1124

原创 【技术篇】文件的md5值

前言: 我们以一个wrold文档为例,新建一个xx.docx文件,然后在Linux下可以使用命令md5sum xx.docx计算md5值 -》835741aba850778a5b06bfd57f55c98c 。然后我在复制了一下这个文件,并将文件名改为yy.docx,然后重复上面的命令去计算这个新文件的md5值,然后得到的是相同的结果,文件的md5值是我在我们一个项目“文件传输...

2019-06-15 21:43:51 5597

原创 【习题练习】十进制转15进制

题目描述: 输入一个十进制整数,将这个数转化成对应的十五进制数(在十五进制中,A表示10,B表示11,C表示12,D表示13,E表示14),请写出转换程序。代码实现:#include <iostream>#include <vector>#include <stack>#include <queue>#include...

2019-06-12 20:54:43 2046

原创 【技术篇】linux进程间通讯--消息队列

(一)什么是消息队列 消息队列提供了一个进程给另外一个进程发送数据块的方法,每个数据块都可以被认为是由自己的类型的,接受者接受的数据块可以有不同的类型;不像管道和命名管道那样,必须以先进先出的方式接收数据。 同管道类似的是,他有一个不足的地方就是每个消息的最大长度是有上限的(MSGMAX),每个仙子队列的总的字节数(MSGMNB),系统上消息队列的总数上限(MSGM...

2019-06-08 17:51:30 233

原创 【技术篇】linux进程间通讯--共享内存

(一)什么是共享内存 共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方式。共享内存的具体实现是不同进程共享的内存安排为同一段物理地址。共享内存是最高效的IPC机制,因为他不涉及进程之间的任何数据传输。这种高效率带来的问题是,我们必须借用其他的辅助方法来同步进程间对共享内存的访问,否则会产生静态条件,因此,共享内存一般会和其他进程间通信一起使用。具体信息可通过https...

2019-06-06 21:35:26 309

原创 【技术篇】linux进程间通讯--管道

(一)管道的概念 1、管道的原理<1>管道是由内核管理的一个缓冲区,相当于我们放入内存中的一个纸条。<2>管道的一端连接一个进程的输出。这个进程会向管道中放入信息。<3>管道的另一端连接一个进程的输入,这个进程取出被放入管道的信息。<4>一个缓冲区不需要很大一般为4K大小,它被设计成为环形的数据结构使之成为一种单向的、先进先出的结...

2019-05-28 22:52:31 129

原创 【技术篇】linux进程间通讯--信号

(一)信号的本质 软中断信号(signal,简称信号)是用来通知进程发生的异步事件。在软件层次上是对中断机制的一种模拟,在原理上一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通讯中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达。事实上,进程也不知道信号到底什么时候到达。进程间可以通过系统调用kill发送软中断信号。内核也可以因为内部事件而给...

2019-05-26 18:04:09 227

原创 【技术篇】IP寻址与地址解析

(一)IP地址概述 1.1 IP地址 IP地(Internet Protocol Address),缩写为IP Adress,是一种在Internet上的给主机统一编址的地址格式,也称为网络协议(IP协议)地址。它为互联网上的每一个网络和每一台主机分配一个逻辑地址,常见的IP地址,分为IPv4与IPv6两大类,当前广泛应用的是IPv4,目前IPv4几乎耗尽,下一阶段必...

2019-05-22 20:40:04 7156

原创 【技术篇】静态库和动态库

(一)库是什么 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。通俗的来说库是一组预先编译好的函数的集合,这些函数都是按照可重用的原则编写的。在库中的函数是相互关联的,通过这些函数的组成可以实现相应的功能。(二)库的种类 库分为静态库和共享库(共享库又叫动态库)。 二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经被载入可执行程序...

2019-05-19 16:14:55 3963

原创 【技术篇】fork源码剖析、写实拷贝技术

(一)预备知识1:clone、fork、vfork三个系统调用的实现都是通过 do_ fork()实现的,不同的是对do_ fork()的调用参数。关键是这些参数起的作用;系统调用clone()的主要用途是创建一个线程,这个线程可以是内核线程,也可以是用户线程。创建用户控件线程时,可以给定子线程用户空间堆栈的位置,还可以指定子进程运行的起点。同时也可以用clone()创建进程,有选择的赋值父进...

2019-05-12 11:55:03 310

原创 【技术篇】C++中异常处理

(一)异常处理的简介 异常处理是编程语言或者计算机硬件里面的一种机制,用于处理软件或者信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件);在软件开发中,异常处理机制是一种比较有效的处理系统运行时的错误方法。C++针对异常处理提供了一种标准的方法,用于处理程序运行是的错误,保证软件系统运行的稳定性与健壮性。但是异常处理没有普通方法函数调用速度快。过度的错误处理回影响应用程序...

2019-05-07 15:16:11 601

原创 【技术篇】C++的输入流--cin

(一)cin>> 1.1 cin>>读取一个字符 cin>>相当于cin.operator>>(),即调用成员operator>>() 进行读取数据 当cin>>读取缓冲区数据第第一个数据为空格、tab、或者换行等字符分隔符时,会将之忽略并清除掉,接着读取下一个数据,如果缓冲区为空,则阻塞等待。等...

2019-05-06 22:40:42 230

原创 【C++】回文串2

题目描述:如果把一个字符串中两个元素的位置互换一次,可以使其成为回文串,就输出“Yes”,否则输出“No”输入描述:输入的行数大于等于1,每一行输入一行字符串输出描述:对应的输入行,对每一行的字符串后返回“Yes”或者“No”示例1输入第一行:a输出第一行:yes示例2输入:第一行:asd第二行:aaa输出:第一行:No第二行:Yes代码演示#i...

2019-04-29 20:18:20 436

原创 【技术篇】map表的自定义排序

map表的自定义排序头文件:#include <iostream>#include <map>#include <time.h>#include <functional>#include <vector>#include <algorithm>using namespace std;(一)按照key值进行排...

2019-04-29 20:14:21 1427

原创 【C++】黑白矩阵(美团)

黑白矩阵(美团)输入一个n*m的矩阵,改变某些位置上的值后使之成为黑白矩阵(黑白矩阵是矩阵中,任意一个位置上的元素的上下左右的值都两两相等,并且自己和上下左右得值不相等;即矩阵中的某一个元素a[i][j],则有a[i+1][j],a[i-1][j],a[i][j+1],a[i][j-1]这四个元素两两相等且不等于a[i][j]);输入描述(共 m+2 行):第一行:输入矩阵的行n第二行:...

2019-04-25 10:54:18 745 1

原创 【linux】linux进程间通讯--信号量

(一)信号量的产生 信号量是由 Dijkstra 提出来的,信号量概念是由并发编程领域迈出的重要一步。信号量的产生是为了在多个进程同时访问系统上某个资源时(同时写一个数据库的某条记录、同时修改某个文件),以确保同一时刻只有一个进程可以拥有对资源的独占。(二)关键代码段(临界区) 通常,程序对共享资源访问的代码知识短短的一部分,,但就是这短短的几句代码引发了进程之间的竞态...

2019-04-23 22:47:35 423 2

原创 【C语言】不同类型的数据转换规则

(一)类型自动转换等级规则: 转换规则: ①若参与运算量的类型不同,则先转换成同一类型,然后进行运算 ②转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算 a...

2019-04-17 22:25:55 3241

原创 【C语言】各类数据的存储方式

准备知识:计算机中存储的数据类型采用的是补码 正数的补码与原码相同,负数的补码 = 反码 + 1 反码:符号位不动,各位上的值按位取反 符号位:1表示负数,0表示整数(一)以windows32位系统为例子,各类型数据占用的内存大小:(二)类型储存 1:bool bool 返回的是代表真假的true、false值,在内存中用一个字节(8个位)来表示,没有什么特殊...

2019-04-17 20:47:18 4601

原创 【数学】练习题1

(一)关灯问题1.1题目描述: 马路上有编号1,2,3,4 .....10共十盏灯,为节约用电而不影响照明,可以吧其中的三盏灯关掉,但不可以同时关掉相邻的两盏灯,在两端的灯都不能关掉的情况下,有多少种不同的关灯方法?1.2解题思路:因为题目要求关掉三盏灯,隐含的要求就是只允许开7盏灯,假设已经开了七盏灯,那么这七盏灯中间就会产生8个空,如图所示:我们可以在这些亮着的...

2019-04-15 22:18:20 417

原创 【C++】找出给定天数的月数

题目说明找出某一年中,大于给定天数的月份数;输入描述:第一行:输入N,表示测试样例个数。【N<100000】第二行:样例1数据-》year 和 date……………… ………………………………………………………第N行 : 样例N数据-》year 和 date输出描述:第一行:输出样例1数量第二行:输出样例2数量……………… ………………………………第N行 :输出...

2019-04-15 21:47:59 268

原创 【C++】Z字形转换

Z字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下(.代表空格):之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int num...

2019-04-02 20:20:56 445 2

空空如也

空空如也

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

TA关注的人

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