自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

平凡

刻苦驴

  • 博客(61)
  • 收藏
  • 关注

原创 Go-net/rpc源码分析

协议约定net/rpc的注释说这个package已经不支持新功能了 The net/rpc package is frozen and is notaccepting new features.RPC方法的格式func (t *T) MethodName(argType T1, replyType *T2) error方法本身是可导出的(能被其他package访问)方法所属的类型是可导出的(这个规定个人感觉有点模糊,好像没什么用)方法有且仅有两个参数,都是可导出类型或者内置类型方法的

2021-08-17 21:47:58 480

原创 最大化最小值和最小化最大值

最小化最大值是为了压制优化目标中表现最突出的成分,最大化最小值为了提升优化目标中表现最差的成分关于这两者的理解,我觉得这篇博文讲得非常好,浅显易懂又联系实际。理解问题后,就要思考如何解决问题。记住,这两类问题一般都是用问题转换加二分查找的方法解决。我会用代码+详细注释的形式记录这两类问题的解法,题目描述易于理解,耐心看完再看题解才会有收获。最大化最小值问题:leetcode...

2019-11-15 23:58:34 8102

原创 学习图论(四)——单源最短路问题

一年前写的最短路的博客写得太一般了,代码也很难看,刚好最近复习到相关知识,所以重新整理一下下面涉及题目的代码都在力扣上通过。一、DFSDFS可以用来求给定两点之间的最短路。即走遍两点间的所有路径,选择路程最小的那一个我们可以从U出发,记录已经走过的路程。采用邻接矩阵的方式来表示图:graph[u][v]=w表示u到v之间有一条权重为w的边,若u和v之间无边,则令gr...

2019-11-15 20:09:20 526

转载 (转载)一个TCP连接可以发送多少个HTTP请求?

声明一:该博客转载了微信公众号——算法与数学之美的文章,原文链接。(日期:10.11)转载是因为觉得该文章的内容是我想学的,且为了方便自己查看以及避免以后再要查阅时查不到。但是我又发现,在5月29日就有其他公众号发了这篇文章,链接在此。最后,我朋友告诉我,他在上学期就看到不少公众号在发这篇文章了。。。。声明二:该博客部分转载了简书博主Half_Light的文章——从URL输入到页...

2019-10-11 23:22:46 489

原创 数据结构与算法:从leetcode中学习链表算法

前言链表是一种典型的数据结构,同时又有许多关于链表的算法,如链表反转、排序等等。最近也了解到面试对算法的考察是重要的一部分,因此我想通过leetcode做专项练习,把其中关于链表的好题认认真真做一遍,总结出来,化为己用。希望能对以后找工作有所帮助。终于把Leetcode上链表专题中非会员题目都做了一遍,真的有种受益匪浅的感觉,既复习了之前学过的知识和做过的题目,也学到了新的知识。总体感...

2019-10-10 08:52:39 673 1

原创 Tarjan算法求割边——leetcode1192

本文学习自 Tarjan算法:求解图的割点与桥(割边),以leetcode1192题为练习讲述割边的求法。一、割边的定义在无向图中,若去掉某条边会导致图中的连通分量增加,则这条边称为割边(或称为桥)。而连通分量,就是一个图的某个子图,该子图中的所有顶点互相连通(任意两个顶点之间都存在可以互相到达的路径),而这些顶点都与子图之外的其他顶点不连通。二、Tarjan算法原理...

2019-09-17 14:25:15 1664

原创 Django:前端后端分离(数据交互)

一、交互的数据格式——JSON(摘录自百度百科——JSON)json(JavaScript Object Notation):一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。语法规则:在JS语言中一切都是对象,任何支持的类型都可以通过JSON来表示。对象表示为键值对; 数据由逗号分隔; 花括号保存对象; 方括号保存数组;JSON键值对是用来保存J...

2019-08-25 16:17:06 9020 4

原创 Web应用程序学习——《Python编程:从人门到实践》

前言 在Python越来越火的当下,感觉作为一个计算机专业的学生还是需要掌握一些Python的编程技能。《Python编程:从入门到实践》是一本好书,我主要学习书里最后的项目部分,因为有C/C++的学习基础,所以对Python的学习我是想通过实践,从项目中学习。这段时间打算学习书上这个Web应用程序的项目,Web的相关知识是我没接触到的,第一次看到这个项目我并没有很大的兴趣去做,因为怕现...

2019-08-09 21:15:12 1198 5

原创 leetcode contest 145

一、1122. Relative Sort Array这题很简单,按照题目要求写就好。先用map对arr1中的元素计数然后按照arr2中元素的顺序构建答案数组。class Solution {public: vector<int> relativeSortArray(vector<int>& arr1, vector<int>&a...

2019-07-16 11:38:06 290

原创 操作系统理论知识:单处理器调度

调度(scheduling):决定处理器要执行哪些进程。一、调度类型1、长程(作业)调度决定进程是否加入待执行的进程池中。决定哪些新建进程可以进入系统准备执行; 控制多道程序系统的并发程度; 进程越多则各进程对CPU的使用百分比越小;在创建新进程时,执行长程调度,决定是否把进程添加到当前活跃的进程集合中。因此它控制着系统并发度,一旦允许进入,一个作业或用户程序就成为一个...

2019-07-06 09:52:25 1231

原创 网络流之最大流问题(Edmonds_Karp 算法)

之前学完最大流问题后没及时整理,最近学离散数学涉及到这方面的知识,就回过头来复习一下,顺便整理下来。什首先,什么是最大流问题?假设要把一些物品从结点S运送到结点T,可以借助其他结点进行中转,各结点之间的边的权值表示该边一次最多可以运输多少件物品,求最多可以一次性从结点S运输多少件物品到T。这就是最大流问题。其中结点S称为源点(只流出不流入),结点T称为汇点(只流入不流出); 每条边的...

2019-07-04 01:02:26 3823

原创 操作系统理论知识:虚拟存储管理的软件方法

一、调页策略调页策略用于决定何时将页面载入内存。两种常用的策略:请求调页(demand paging):只通过响应缺页中断调入需要的页面,也只调入发生缺页时所需要的页面。这种策略下进程开始运行时会有比较多的缺页,对外存I/O交换次数多,开销比较大。(一次I/O操作包括旋转等待时间(磁头到达目的块的第一个扇区所需的时间)和读写时间(CPU等待数据从存储器读出或写入的时间)) 预先调页(...

2019-07-03 16:04:20 856 2

原创 leetcode contest 143

一、1103. Distribute Candies to People一道简单题,不用多说,适合刚学编程的朋友做。按着看完题目后的常规思路,一个人一个人分配糖果就好。class Solution {public: vector<int> distributeCandies(int candies, int n) { vector<int&...

2019-06-30 16:09:20 225

原创 操作系统理论知识:文件系统

一、文件系统的引入文件系统的三个基本要求:能够存储大量的信息; 能够长期保存信息; 可以共享信息(并发存取);文件是通过操作系统来管理的,包括文件的结构、命名、存取、使用、保护和实现方法等——构成了文件系统二、文件结构1、域(field)/字段域是基本数据单元,一个域包含一个值,可以通过其长度和数据类型来描述。域的长度可以是固定的,也可以是可变的。通常情况下域包含了:要保...

2019-06-28 17:08:04 1048

原创 操作系统理论知识:I/O管理与磁盘调度

一、I/O设备1、分类人可读的——与用户交互:打印机,终端(显示器+键盘); 机器可读——与电子设备通信:磁盘驱动器,固态硬盘,U盘,传感器,控制器; 通信——与远程设备通信:数字线路驱动器,调制器,解调器。2、差异数据传送速率的差异:键盘速率最慢。用于存储文件的磁盘需要文件管理软件支持; 用于存储虚拟内存页面的磁盘需要特定软硬件支持; 系统管理员使用的终端可能拥有高优...

2019-06-27 17:11:50 1640

原创 计算机网络理论知识:IP多播协议

一、多播分组多播地址为D类地址:224.0.0.0 - 239.255.255.255.每种物理网络都有封装多播分组的方法:对于点到点网络,把IP多播分组直接封装成帧然后从接口发出去; 对于以太网,用IP多播地址的低23位替换地址01-00-5E-00-00-00的低23位得到多播MAC地址,然后封装成帧。帧格式: 帧头部 IP头部 IP Payload(UDP)...

2019-06-26 10:55:07 2937

原创 leetcode contest 142

先记录前三题的题解,最后一题在规定时间内我没做出来,看discuss区貌似测试样例也有错,加上要期末考了没太多时间钻研,就先不记录了。一、1093. Statistics from a Large Sample这题是给你一串数据,A[i]=j表示数字i出现了j次。要你求这组数据的最小值、最大值、中位数、均值、众数。感觉这题没什么质量(虽然我一开始题目看错了,浪费了一些时间),评价也不是...

2019-06-23 16:28:49 167

原创 计算机网络理论知识:BGP协议

一、概述路由器为了访问AS(自治系统)之外的网络,需要在路由表中加入这些网络的路由。 内部网关协议(IGP)只负责建立AS内的网络的路由,而外部网关协议可以在AS之间传递路由。 最早的一种外部网关协议(EGP)是EGP协议,只允许树形结构的连接。现在主要使用的是边界网关协议(BGP),允许各AS以图的方式连接。 BGP协议采用可靠扩散(reliable flooding)的方法把AS内的...

2019-06-19 13:40:32 1313

原创 leetcode contest 141

一、1089. Duplicate Zeros给你一个长度固定的整数数组arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组就地进行上述修改,不要从函数返回任何东西一道难度easy的题,要通过测试很简单,但是一般人都是直接写个空间复杂度为O(n)的算法,比如我。class Solution...

2019-06-16 19:41:27 243 2

原创 操作系统:虚拟内存的存储管理

页式管理在基于分页的虚拟内存方案中,通常每个进程都有一个唯一的页表,对应于每个进程都有自己的虚拟地址空间。页表项的格式为:P位:由于一个进程可能只有一些页在内存中,因此每个页表项需要有一位(P)来表示它所对应的页当前是否在内存中。如果这一位表示该页在内存中,则这个页表项还包括该页的页框号。 M位:修改位(脏位),表示相应页的内容从上一次装入内存中到现在是否已经改变。若未改变,则当...

2019-06-14 13:08:55 1053

原创 Leetcode: House Robber

最近做了leetcode上三道动态规划的题,觉得很不错,题目的评价也不错,故作此记录。1、198. House Robber题意:一组直线排列的房屋,一个小偷要进屋偷钱,如果小偷偷了相邻两座房屋就会触发报警系统,问在不触发报警系统的前提下小偷最多可以偷到多少钱。难度:esay思路:1、由于是线性排列,所以一间房屋的相邻房屋只有其左右两间房屋,当我们依次查看房屋时,则一间房屋的相...

2019-06-13 20:03:12 425

原创 计算机网络理论知识:传输层

目录一、传输层协议1、因特网传输层的两个协议:UDP和TCP二、用户数据报协议(UDP)三、传输控制协议(TCP)四、握手连接1、三次握手建立连接(SYN, SYN+ACK, ACK)2、四次握手关闭连接(FIN, ACK, FIN, ACK)五、TCP滑动窗口1、快速重传2、延迟确认3、选择性确认4、TCP超时时间计算5、拥塞6、TC...

2019-06-12 22:54:42 928

原创 leetcode contest 140

一、Occurrences After Bigram这题比较简答。就是给你一个文本类似的字符串,再给你两个单词,要你找出文本中连续出现给定的两个单词后的第三个单词(可能有多个)。因为文本字符串中的单词是以空格分割的,恰好前段时间写python代码时觉得python在处理字符串分割这块很方便,所以我直接用python写这题。class Solution: def findOcu...

2019-06-09 16:22:06 204

原创 计算机网络理论知识:OSPF协议

目录一、链路状态路由算法二、OSPF协议(open shortest path first)1、将网络变为图2、OSPF协议的详细过程3、OSPF的开销4、路由器ID:OSPF采用路由器ID(RID)标识每一个路由器5、指定路由器6、LSA定时器7、OSPF分组格式8、特点一、链路状态路由算法利用最短路径算法求出一个节点到所有其他节点的最短路径...

2019-06-04 11:35:33 1623

原创 计算机网络理论知识:RIP协议

目录一、距离向量法二、路由信息协议(Routing Information Protocol)1、RIP协议的工作方式2、RIP协议的问题1、慢收敛(slow convergence):2、计数到无穷(count to infinity)3、RIP协议的相关技术4、RIP协议的定时器5、RIP数据包格式一、距离向量法也称为贝尔曼福特算法,是一种最短...

2019-06-04 10:37:24 12572 6

原创 计算机网络理论知识:路由协议

目录一、有类网的IP路由选择二、无类网的IP路由选择三、路由表(记录的是IP地址)四、路由协议——用于自动建立路由表的协议五、自治系统(autonomous systems, AS)一、有类网的IP路由选择利用数据包中的目的地址得到目的网络号,然后查询路由表:如果查到的结果是直连网(即下一跳为空),则直接把数据包从查到的接口转发到目的主机;(即不需要再中转了)...

2019-06-04 09:30:05 1033

原创 计算机网络理论知识:IP数据报

目录一、零散的知识点二、电路交换与包交换1、电路交换技术(circuit switching)2、包交换技术(packet switching)三、IP数据报1、IP协议的服务模型2、IP数据报格式3、IP数据报的选项一、零散的知识点每个数据链路层协议只涉及一个直连网,而网络层协议涉及整个网络。 网络层协议负责确定把收到的包从哪条路径转发出去(for...

2019-06-03 23:56:20 2391

原创 Leetcode contest 139

这次contest对我来说难度比较大,一些问题只会暴力求解(TLE),从思考到弄懂题目花了我挺多时间。一、1071. Greatest Common Divisor of Strings这题我用的暴力求解的方法。由于是要找到一个最长的字符串使得给定的两个字符串S1和S2都是由该字符串组成,所以我们要找的那个字符串的最大长度一定不会超过S1和S2中较小的那个长度。因此我假定要找的字符...

2019-06-03 13:55:36 250 1

原创 计算机网络理论知识:IP地址

目录一、相关知识点1、MAC地址与IP地址2、IP地址结构二、有类网三、子网1、一个有类网可以划分为多个大小相同的子网(subnet)2、变长子网掩码(VLSM):允许将一个有类网划分为多个不同大小的子网3、无类域间路由选择协议(Classless Inter-Domain Routing,CIDR)四、特殊的IP地址五、私有IP地址六、网络地址转...

2019-06-03 10:18:59 4151

原创 计算机网络理论知识:介质访问控制子层

目录一、概述1、多路访问链路2、介质访问控制子层的由来二、介质访问控制子层(Media Access Control, MAC层)1、逻辑链路控制子层2、以太网(Ethernet)3、世界上最早的无线电计算机通信网:ALOHA4、CSMA(Carrier Sense Multiple Access)协议:载波监听多路访问协议三、以太网的MAC层协议1、...

2019-05-30 22:40:54 4010 1

原创 操作系统理论知识:内存管理

一、存储体系1、存储器的层次结构:高速缓存Cache 内存; 固态硬盘SSD 磁盘/外存2、内存:系统区:存放操作系统内核; 用户区:存放用户程序和数据;3、内存管理操作系统对内存的划分和动态分配就是内存管理。主要工作:将程序载入内存以让CPU执行程序。目的:将内存区域进行划分以容纳多个进程(多道程序设计);有效分配内存以容纳尽量多的进程。二、存...

2019-05-30 16:28:06 1264

原创 计算机网络理论知识:数据链路层

目录一、概述1、作用2、功能3、常用的校验方式1、奇偶校验2、校验和(checksum)3、循环冗余校验码(cyclic redundancy check, CRC)二、可靠的数据传输1、自动重发请求(automatic repeat request,ARQ)2、停等协议(stop-and-wait)3、滑动窗口协议4、回退N协议5、选择性...

2019-05-29 15:37:05 911

原创 计算机网络理论知识:物理层

目录一、信号的表示1、频移键控(frequency-shift keying, FSK)2、幅移键控(Amplitude-shift keying, ASK)3、相移键控(Phase-shift keying, PSK)4、正交调幅(Quadrature amplitude modulation, QAM)二、编码1、单极编码(unipolar encoding)...

2019-05-29 13:29:40 1427

原创 计算机网络理论知识:概述

目录一、定义二、直连网1、点到点网络:2、多路访问网络:3、由多个直连网连接起来的网络称为间接连接的网络三、互连网络(internetwork)四、因特网1、三个组成部分:2、ISP3、两个最为重要的协议1、TCP协议(Transmission Control Protocol):传输控制协议2、IP协议(Internet Protocol):...

2019-05-27 14:13:28 1121

原创 Leetcode contest 138

一、1052. Grumpy Bookstore Owner解题思路:1、求固定大小的最大连续子序列把题目转换为求一个序列的固定长度的最大连续子序列去做。在该子序列内所有custommers都是满意的,在该子序列外customers是否满意取决于对应位置的grumpy的值。利用前缀和实现对连续子序列的和的O(1)求解class Solution {public: i...

2019-05-27 10:01:41 262

原创 操作系统理论知识:死锁

一、死锁的定义死锁(deadlock):一个进程集合中的每个进程都在等待只能由该集合中的其他进程才能引发的事件(释放已占有的资源或者进行某项操作); 死锁是多个进程因竞争资源且推进顺序不合理而造成的一种僵局,若无外力作用,这些进程将永远不能再向前推进。 若考虑进程与I/O设备交互,则可能出现单进程死锁的情况:如果一个进程发出一个I/O命令并被挂起等待结果,然后在开始I/O操作之...

2019-05-26 09:38:48 934

原创 操作系统理论知识:同步与互斥

一、并发1、相关术语原子操作(atomic operation)——不可分割的操作; 临界区(critical section)——不允许多个进程同时进入的一段访问共享资源的代码; 死锁(deadlock)——两个及以上进程因每个进程都在等待其他进程做完某事(如释放资源),而不能继续执行; 活锁(livelock)——两个及以上进程,为响应其他进程中的变化而不断改变自己的...

2019-05-24 20:02:48 1836

原创 操作系统理论知识:线程

一、线程与进程1、在没有线程概念的系统中,进程是:资源分配的单位; 调度/执行的单位;2、主要的问题:进程切换的开销大——每次切换都要保存和恢复进程映像; 进程占用的资源多——多个同类进程需占用多份资源,而一个进程中的多个同类线程则共享一份资源;3、定义:线程是一个进程内CPU的基本调度单位。4、多线程环境下的进程和线程:在多线程操作系统中,进程是拥有系统资源的基本单位,包...

2019-05-23 13:30:11 951

原创 操作系统理论知识:进程

目录一、进程概念1、顺序与并发程序的顺序执行(单道单线程批处理)程序的并发执行(多道批处理,单道多线程批处理)2、进程进程描述:进程的特征:进程控制块PCB进程映像进程的状态进程的创建和终止进程阻塞进程唤醒进程的挂起进程的切换3、原语(primitive)4、执行模式两类指令两种执行模式(CPU状态)模式切换...

2019-05-21 10:45:39 933 2

原创 Leetcode:两道不错的动态规划题目

觉得这两题好是因为这两题可以通过转化为其他比较容易分析的问题来求解。416. Partition Equal Subset Sum题目描述:Given a non-empty array containing only positive integers, find if the array can be partitioned into two subsets such tha...

2019-05-19 20:18:37 344

空空如也

空空如也

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

TA关注的人

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