1 猿来如此~

尚未进行身份认证

我要认证

心中所想,便是远方

等级
TA的排名 6w+

LRU的Cache

LRU算法:LRU算法又叫做最久未使用算法,本质是将最久未被使用的数据删除LeetCodeLRU算法缓存机制:class LRUCache //LRUCache的类{ int _capacity; unordered_map<int, list<pair<int, int>>::iterator> _ht; list<pair<int, int>> _lru_lt;public: LRUCache(int capacity) :_

2020-08-05 21:09:35

B树、B+树、B*树

B树二叉搜索树->AVL树->红黑树->B树,由于B树之前的搜索树都是内存中存数据,如果数据量过大,内存中存不下,就没有办法了。这个时候内存中存不下的时候,就想到向磁盘中存储,B树主要就是应对在磁盘上存储数据的问题B树的主要特点:1.搜索树的左边的子树小于当前结点key,右边的子树大于当前的结点key2.一个结点会有多个关键字,多个孩子,但是孩子的数量总会比关键字的数量多一个3.根节点关键字的数量[1,M-1],孩子的数量[2,M]4.非根结点的关键字的数量[M/2-1,M-

2020-08-04 20:41:18

网络基础---IP地址,PORT端口,TCP/IP五层模型,网络字节序

交换机:实现主机之间的数据交换;路由器:实现数据交换和路由选择,相当于就是一个网关的作用;网络的划分:局域网:网络覆盖范围在一千米以内城域网:网络覆盖范围在10-20千米广域网:网络覆盖范围在20千米以外IP地址用来标识唯一的主机,分为IPV4和IPV6两个版本,IPV4位uint32_t类型的,IPV6是uint8_t arr[16],但是IPV6并不向前兼容IPV4,因此还是IPV4目前被较为广泛的使用。在网络中每条信息都会包含源IP和目的IPPORT端口被用来在主机中标识唯一的进程,

2020-07-13 16:02:32

MySQL事务-特性、隔离级别

MySQL事务简单来说事务就是要么全都成功,要么全部失败的一组语句事务的四种隔离级别:读未提交(read committed)、读已提交(read uncommitted)、可重复读(repeatable read)、可串行化(serializable)1.读未提交:两个事务同时操作一个表,其中一个事务修改了表中的数据并提交,另外一个事务数据提交的前后都可以查看数据的更改,这个问题被称为脏读,解决脏读的方法就是将隔离级别变成读已提交2.读已提交:同样是两个事务操作一个表,其中一个事务修改了数据并提交

2020-05-11 15:13:21

最长上升子序列

例如:序列:1,7,3,5,9,4,8—对应的最长上升子序列就是1,3,5,9或者1,3,4,8,要求输出的是,最长的序列的长度#include <iostream>#define SIZE 1001using namespace std;int main(){ int i, j, n, top, temp; int stack[SIZE]; top = 0; s...

2020-04-10 15:02:26

TCP的三次握手/四次挥手

2020-04-09 22:01:32

TCP/IP典型协议之UDP协议、TCP协议

UDP协议:UDP协议是传输层的典型协议,传输层主要负责应用程序之间的数据传输UDP的特性:无连接、不可靠、面向数据报无连接:只需要知道对端地址,不需要建立连接就可以直接发送数据不可靠:不保证数据能够达到对端面向数据报:无连接的、不可靠的、有最大传输限制的数据传输方式UDP协议格式:通过协议实现理解协议特性16位源端口和16位目的端口:负责数据传输,标识数据从哪里来,到哪里去16...

2020-04-09 22:00:14

TCP/IP典型协议之HTTP协议

HTTP协议:HTTP协议是应用层的知名协议,应用层主要负责的是应用程序之间的沟通;HTTP协议又名超文本传输协议HTTP协议格式:首行:请求首行:请求方法 URL 协议版本响应首行:协议版本 响应状态码 状态码描述头部:由一个个的key: val形式的键值对组成,每个键值对以\r\n作为间隔,主要描述的是本次请求或者响应的重要信息空行:\r\n正文:数据1.请求方法:GE...

2020-04-09 21:26:37

管道---进程间通信的手段

操作系统为用户所提供的几种进程间通信方式原因:进程间因为每一个进程都有一个虚拟地址空间,在保证了进程独立性的同时,却使得进程间无法直接通信因此需要操作系统来提供进程间通信的方式,并且因为通信场景不同,提供的方式也有多种进程间通信的方式:1.管道–用于进程间的数据传输本质:内核当中的一块缓冲区—通过半双工通信实现数据传输(半双工通信–可以选择方向的通信),通过让多个进程都能访问同一块缓冲...

2020-03-17 17:18:55

Linux系统调用接口/文件系统/重定向/软硬链接文件/动态库静态库

1.标准库的IO接口:fopen/fwrite/fread/fseek/fclose这里着重介绍一个fopen接口:FILE * fopen(const char* filename,const char* mode)mode:"r/r+/w/w+/a/a+"1.w/w+:每次都会清空文件原有内容进行写入数据、如果原来没有这个文件的话,就会自行创建、加上+号就会变成可读可写的方式2.f...

2020-03-16 17:20:30

Linux系统编程阶段思维导图

2020-03-11 11:07:55

栈的压入、弹出序列

已知两个数组,pushV存的是栈的压入序列,本题需要判断popV序列是不是pushV的弹出序列做法:找一个辅助的栈,只要这个栈的空或者栈顶不等于当前的popV[i]的元素,就不断的向辅助栈中压入这个元素,直到栈不空,并且栈顶与popV[i]相等,就直接pop这个辅助栈,但是有个问题就是,在压入的时候j有可能会>n,如果一旦大于,则不可能是弹出序列,最终的判断是这个栈是不是空的栈,如果是空的...

2020-02-25 20:53:40

C++11新特性

1.列表初始化:在C++11中支持列表初始化,对于C++的内置类型与自定义类型都可以进行列表初始化。{}也不仅仅可以初始化数组,而且可以初始化所有的内置类型与自定义类型,“=”也可以省略,比较特别的是自定义类型进行多个对象的列表初始化需要在模板类中加上参数为Initializer_list类型的构造函数。2.变量类型推导:我们在定义变量的时候,必须知道类型,但是有时候可能我们无法知道类型,或...

2020-02-16 16:56:09

位图、布隆过滤器及其相关面试题

位图:为了处理大量数据的问题,位图的出现极大的节省了我们进行大数据计算是的时间复杂度以及节省了大量的空间,位图主要利用的是位,使用8位二进制表示8个数字,相当于一个字节就可以表示8个数字,极大的节省了空间,而且在查找的时候的复杂度可以达到O(1)布隆过滤器:我们在给客户推送视频的时候,我们只会推荐客户没有看过的视频,那么我们如何来确定那个视频用户看过了,那个用户没有看过,在这里我们如果使用哈...

2020-02-14 15:52:01

unordered_map\unordered_set的模拟实现及注意事项

unordered_maptemplate<class K, class V, class KeyofValue, class HF> class unordered_map { typedef pair<K, V> ValueType; typedef HashBucket<K, ValueType, KeyofValue, HF> HT; ...

2020-02-11 22:15:51

红黑树的插入

红黑树的插入总共不算镜像的话总共五种情况:插入就要做根,即插入之前树中没有结点,插入的这个结点就是m_head的parent第二种就是插入的父亲是黑的,所以不需要改变第三种就是插入的父亲是红的,叔叔也是红的,此时需要的操作是改色,将父亲结点与叔叔结点的颜色变成黑的,将爷爷结点的颜色变成红色,然后继续向上遍历,将所有的出现的这种情况都处理了,如果遇到根就先变红再变黑,即遇到m_head就退出...

2019-12-16 11:11:01

AVL树的插入、删除

AVL树的插入、删除:bool insert(const T &val) { if (m_root == nullptr) { m_root = new TreeNode<T>(val); return true; } TreeNode<T> * cur = m_root; TreeNode<T> *...

2019-12-16 10:43:51

程序替换:exec函数族

exec函数族:程序替换:就是替换一个正在运行中的程序,替换一个pcb在内存中的代码和数据程序替换使用的是exec函数族:int execl(const char * path,const char * arg,…)…为不定参数,以NULL结束int execlp(const char * file,const char * arg,…),函数放在指定的路径下*int execle(c...

2019-12-06 11:33:29

星际密码

星际密码题目描述:将一个1110的矩阵,求出这个矩阵的n次方,然后取得到的矩阵的左上角的数字,如果小于4位的话,就前面补0,补到4位,超过四位的话就输出最后的四位解题方法:本题如果去分析这个矩阵的规律的话,就会发现这个数是斐波那契数列的变形,我们平常的斐波那契数列都是用递归的方法写的,但是由于本题的用例的数字过大,产生的数据冗余比较大,因此这里要使用的是数组的方法,将每个斐波那契数列放到数组中...

2019-12-04 23:34:05

数根

数根题目:输入一个数,然后将这个数的每一位加起来,如果得到的数不是10以内的数,就继续进行,知道是10以内的数之后直接输出方法:由于题目中的这个数的位数为1-10001,所以明显不能使用数字,本题中我使用的是C++STL中的string#include <iostream>#include <string>using namespace std;int mai...

2019-12-04 23:27:04

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。