自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【git】本地仓库与远程仓库关联提交

1.新建一个需要使用git的目录2. git init进行 仓库初始化3. git config配置用户名密码4.简历远程仓库,不需要initialize5.git remote add origin 进行远程关联6.git add添加文件到master或者其他分支(需要切换到相应分支:git checkout de...

2019-05-07 21:49:07 491

原创 剑指【二叉树中序遍历的下一节点】

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。分情况讨论:C有右子树,下一节点是B(右子树的最左节点) B没有右子树,下一节点是D(B是D的左孩子,下一节点就是father) D也没有右子树,下一节点是F(D是C的右孩子,C是F的左孩子,下一节点是第一个成为父节点的左孩子...

2019-04-21 13:19:08 175

转载 剑指【重建二叉树】

给定前序遍历和中序遍历,构建二叉树递归:找到每个子树的根节点,定义为pivot,再分别构造左右子树 TreeNode* R(vector<int> a,int abegin,int aend,vector<int> b,int bbegin,int bend) { if(abegin>=aend || bbegin>...

2019-04-21 12:48:11 184

转载 剑指【不修改数组查找重复数字】

给定一个长度为n+1的数组 nums,数组中所有数都在1-n范围内,其中n>=1;查找数组中任意一个重复的数;将数字范围1-n作为二分查找的左右区间,l=1,r=n;mid=(l+r)/2;如果数值落在l-mid上的数的个数比左区间的长度大,则说明左区间有重复数字,否则右区间有重复数字;int duplicate(vector<int>& nums)...

2019-04-21 12:28:07 106

转载 剑指【数组中重复数字】

题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3。思路:1、排序将数组排序,然后扫描排序后的数组即可。时间复杂度:O(nlogn),空间复杂度:O(1)...

2019-04-21 11:59:40 79

转载 【算法】扔玻璃珠

题目某幢大楼有100层。你手里有两颗一模一样的玻璃珠。当你拿着玻璃珠在某一层往下扔的时候,一定会有两个结果,玻璃珠碎了或者没碎。这幢大楼有个临界楼层。低于它的楼层,往下扔玻璃珠,玻璃珠不会碎,等于或高于它的楼层,扔下玻璃珠,玻璃珠一定会碎。玻璃珠碎了就不能再扔。现在让你设计一种方式,使得在该方式下,最坏的情况扔的次数比其他任何方式最坏的次数都少。也就是设计一种最有效的方式。分析1)最笨的办...

2019-04-07 10:51:55 1455

转载 【算法4】

题目:写一个程序,要求功能,求出用1、2、5这三个数不同个数组合的和为100的组合数。如100个1是一个组合,20个5是另外一个组合。思路一:看到这样的问题我们首先会想到最简单穷举法,三层循环就可以解决了。代码如下: #include "stdafx.h"#include <assert.h>#include <iostream&gt...

2019-04-07 09:24:53 159

转载 【算法3】将数组中的数拼成一个最大的数

比如:输入 321 32 6输出 632321 #include<c++/4.8.2/iostream> #include<c++/4.8.2/vector> #include<c++/4.8.2/string> #include<c++/4.8.2/algorithm> using namespace std;...

2019-04-07 09:18:38 1342

转载 四种cast转换

c++动态类型转换有四种const_cast、static_cast、dynamic_cast、reinterpreter_cast前面两个用的多,但是后面的针对其设计理念有许多其他的实现方法可达到同样的效果1、const_cast用于将const变量转为非const2、static_cast用于各种隐式转换,比如非const转const,void*转指针等, static_ca...

2019-04-06 14:51:14 4348

转载 map hash_map unordered_map

1. unordered_map, hash_map, map 概述C++中,map(来自于 STL) ,底层实现采用红黑树。hash_map(有很多种实现,底层实现均采用hashtable。目前普遍使用的来自 SGI 的 STL),还未成为C++标准,不过,在可预见的将来,会成为C++标准。unordered_map 实现来自于 boost 库,底层实现也是hashtable。...

2019-04-06 14:20:53 232

转载 【STL关联式容器】--set/map

转载自:https://blog.csdn.net/qq_37941471/article/details/81039195setset 和 map 都是基于红黑树来实现的;两种都属于关联式容器。K模型 :set里面每个元素只存有一个key,它支持高效的关键字查询操作,比如检查一个关键字是否在set中或者在 某些文本处理过程中可用set保存想要忽略的单词为何map和...

2019-04-06 11:20:27 144

转载 【STL序列容器】--Vector、list

转自https://blog.csdn.net/qq_37941471/article/details/81984417序列式容器一. vector :vector采用一段连续的内存来存储其元素,向vector添加元素的时候,如果容量不足,vector便会重新malloc一段更大的内存,然后把原内存中的数据memcpy到新的内存中,并free原内存块,然后将新元素加入。...

2019-04-06 11:06:53 186

转载 【算法2】最长公共子序列

https://blog.csdn.net/someone_and_anyone/article/details/81044153https://www.cnblogs.com/gispf/p/6733074.html(讲解了最长公共子串、最长公共子序列、字符串相似度)#define N 1010int dp[N][N];char c;int main(){ char...

2019-04-04 17:36:23 284

转载 【算法1】猴子吃桃

http://www.cnblogs.com/huangxincheng/archive/2012/08/08/2628022.htmlint getlast(int sn){ return 2*(sn+1);}int main(){ int n=9;int to=1; while(n){ to=getlast...

2019-04-04 16:51:11 138

转载 TCP和UDP相关的协议 /get post /浏览器请求流程 /cookie 和session

TCP对应的协议:(1) FTP:定义了文件传输协议,使用21端口。(2) Telnet:一种用于远程登陆的端口,使用23端口,用户可以以自己的身份远程连接到计算机上,可提供基于DOS模式下的通信服务。(3) SMTP:邮件传送协议,用于发送邮件。服务器开放的是25号端口。(4) POP3:它是和SMTP对应,POP3用于接收邮件。POP3协议所用的是110端口。(5)HTTP:是从We...

2019-04-03 11:21:00 567

转载 TCP的三次握手过程四次挥手

在《计算机网络》一书中其中有提到,三次握手的目的是“为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误”,这种情况是:一端(client)A发出去的第一个连接请求报文并没有丢失,而是因为某些未知的原因在某个网络节点上发生滞留,导致延迟到连接释放以后的某个时间才到达另一端(server)B。本来这是一个早已失效的报文段,但是B收到此失效的报文之后,会误认为是A再次发出的一个新的连接请...

2019-04-03 10:28:35 120

转载 常见的HTTP状态码

2开头 (请求成功)表示成功处理了请求的状态代码。200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。 201 (已创建) 请求成功并且服务器创建了新的资源。 202 (已接受) 服务器已接受请求,但尚未处理。 203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 204 (无内容) 服务器成功处理了请求,但没有返回任何内容。 205 (重...

2019-04-03 10:17:15 187

转载 七层模型

最近又看到这个七层模型了,一直都记不住这个七层模型,就算背住了也很快忘记。主要原因还是因为没有真实的使用场景,也没能理解其中的原理。但是这个东西是计算机网络的基础,既然碰巧看到就顺便整理一下吧。很多知识的梳理都是通过文章来理解贯通的,所以在计算机开发中对于技术的应用对敲代码;对于抽象的知识多写文章,自然而然的就懂了。关于七层模型的介绍七层模型,也称为OSI(Open System Int...

2019-04-03 10:13:55 154

转载 线程同步的方式

首先要明白,什么是线程同步,为什么要同步?所谓同步,就是并发的线程在一些关键点上可能需要互相等待与互通信息,这种相互制约的等待与互通信息称为进程同步。“同”其实是协同,而不是同时,因为我们知道多线程终究是不能同时执行的(看起来那么多程序同时运行互相不干扰那是从宏观层面看是这样),那么线程之间由于执行权在不断地切换,如果不同线程都做不同的事,处理不同的数据倒也没什么问题,关键是有时候会有那么一些...

2019-04-03 09:33:32 188

原创 调度算法

先来先服务:时间先到的先服务,不会导致饥饿,非抢占式短作业优先:高响应比优先:主动放弃或者主动阻塞,调度时计算所有就绪进程的响应比其他三种算法:时间片轮转:多级反馈队列也会导致饥饿:如果一个进程一直阻塞在后面的队列里...

2019-04-02 22:50:43 707

转载 线程的引入

进程与线程对比线程的属性:

2019-04-02 22:00:38 130

转载 进程通信【待完善】

1、共享内存2、管道3、消息队列

2019-04-02 21:57:24 114

转载 作业/进程 及调度

程序与进程之间的区别:(1)进程更能真实地描述并发,而程序不能。(2)进程由程序和数据两部分组成,进程是竞争计算机系统有限资源的基本单位,也是进程处理机调度的基本单位。(3)程序是静态的概念;进程是程序在处理机上一次执行的过程,是动态的概念。(4)进程有生存周期,有诞生有消亡。是短暂的;而程序是相对长久的。(5)一个程序可以作为多个进程的运行程序;一个进程也可以运行多个程序。...

2019-04-01 22:59:34 620

原创 【操作系统】进程状态及切换

进程的状态及切换就绪态和运行态可以相互转换,运行态下如果时间片耗尽或者被抢占则进入就绪太,其他只能运行态->阻塞态(等待某个事件发生:外部输入等)->就绪态(除了cpu一切就绪)进程控制就是实现进程状态转换,通过原语实现!原子操作(原语):在执行期间不允许中断,通过“关中断指令”和“开中断指令”实现,只能在核心态使用!阻...

2019-04-01 17:43:59 1054

转载 【经典数据结构】B树与B+树

https://www.cnblogs.com/vincently/p/4526560.html这篇文章讲的比较详细对于为什么数据库索引使用的是b+树有很好的解释:由于存储介质的特性,磁盘本身存取就比主存慢很多,再加上机械运动耗费,因此为了提高效率,要尽量减少磁盘I/O,减少读写操作。为了达到这个目的,磁盘往往不是严格按需读取,而是每次都会预读,即使只需要一个字节,磁盘也会从这个位置开始,...

2019-04-01 17:16:05 153

转载 彻底理解数据库事务

转载自:HollisChuang's Blog»彻底理解数据库事务https://www.hollischuang.com/archives/898事务事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在计算机术语中,事务通常就是指数据库事务。概念一个数据库事务通常包含对数...

2019-04-01 17:09:36 116

转载 vector的内存分配方式

关于STL容器,最神奇的事情之一是只要不超过它们的最大大小,它们就可以自动增长到足以容纳你放进去的数据。(要知道这个最大值,只要调用名叫max_size的成员函数。)对于vector和string,只要需要更多空间,就以realloc等价的思想来增长。这个类似于realloc的操作有四个部分:分配新的内存块,它有容器目前容量的几倍。在大部分实现中,vector和string的容量每次以2为因数...

2019-03-27 22:23:38 2487

转载 如何初始化const和static数据成员

通常在类外初始化static数据成员,但是 static const 的整型(bool,char,int,long)可以再类声明中初始化,static const的其他类型也必须在类外初始化(包括整型的数组)。const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。static表示的是静态的。类的静态成员函数、静态成员变量是和类相...

2019-03-27 21:45:46 1613

转载 哪些函数不能声明成虚函数

在C++,有五种函数不能被声明成虚函数,分别是:非成员函数(只能重载)、构造函数(虚函数需要使用对象调用)、静态成员函数(属于类)、内联成员函数、友元函数这五种,下面分别解释为什么这五种函数不能被声明成虚函数。1. 非成员函数 非成员函数只能被重载(overload),不能被继承(override),而虚函数主要的作用是在继承中实现动态多态,非成员函数早在编译期间就已经绑定函数了,无法...

2019-03-27 21:21:13 1257

转载 哪些成员函数不能被继承

C++中,并不是所有的成员函数都能被子类继承,有三类成员函数不能被子类继承,分别是:构造函数(包括拷贝构造)、析构函数、赋值运算符重载函数。1. 构造函数  构造方法用来初始化类的对象,与父类的其它成员不同,它不能被子类继承(子类可以继承父类所有的成员变量和成员方法,但不继承父类的构造方法)。因此,在创建子类对象时,为了初始化从父类继承来的数据成员,系统需要调用其父类的构造方法。   如...

2019-03-27 21:15:35 4413 1

空空如也

空空如也

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

TA关注的人

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