自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 问答 (1)
  • 收藏
  • 关注

原创 Go中的赋值:值语义还是引用语义?

1. 问题的提出赋值时是值语义还是引用语义对程序的行为有很大影响,如果我们想要某个函数对一个变量的修改对外部不可见,我们希望值语义的赋值,反之,若我们想要某个函数对一个变量的修改是全局可见时,我们希望引用语义的赋值。那么Go中的赋值究竟是值语义还是引用语义?2. Go中的赋值在Go中大部分类型的赋值是值类型,包括:基本类型,如byte、int、bool、float32、float64和string等;复合类型,如数组(array)、结构体(struct)和指针(pointer)等。可以看到,

2021-03-09 17:39:54 466

原创 CSAPP ProxyLab实验报告

Proxylab1. 实验概述WedProxy是介于浏览器和远端服务器的桥梁,接收浏览器的请求并发送给服务器,接收服务器响应并返回给浏览器。代理具有以下三个功能:建立和某个服务器、客户端的连接,接收客户端请求并发送给服务器,接收服务器响应并返回给浏览器。允许多个连接并发执行。缓存最近访问的内容。和前一个实验malloclab相比这个实验不算难,不仅评分宽松、没有考察错误处理外,结构体的使用还可以避免像malloclab那样因为指针误用导致的莫名其妙的问题。虽然这个实验涉及第十章、十一章、十二

2021-02-20 22:14:01 2509

原创 不同优先级的读者写者问题实现

弱读者优先在这一版本的实现中需要在已经有读者在读的情况下优先响应正在等待的读者而不是写者,代码如下:int rc = 0;sem_t mutex, w;void reader(){ while(true) { P(&mutex); rc++; if(rc == 1) P(&w); V(&mutex); ...read... P(&mutex);

2021-02-10 15:36:51 223

原创 《编程珠玑》第二章的三个问题

2.1 三个问题A. 找出不在文件中的32位整数当内存足够时可以直接在内存中维护位向量,有对应位是否为1表示是否出现了对应整数。当内存只有几百字节时可以考虑将位向量分段,每次读一遍顺序文件正确设置对应位,位向量的每个段都存入外部文件。B. 循环左移假设原向量为a,循环左移前后元素的索引具有以下对应关系:01…i-1ii+1…n-1n-in-i+1…n-101…n-i-1可以另外使用一个数组装循环左移后的向量,但是如果限制内存只有几十个字节,我们将

2021-02-09 22:30:39 183

原创 codeup 由二叉树的先序序列构造一棵树

#include <iostream>#include <map>#include <queue>#include <algorithm>#include <cstring>/* run this program using the console pauser or add your own getch, system("pause") or input loop */using namespace std; struct Nod

2021-02-06 16:53:19 136

原创 编程珠玑第一章课后题9——第一次访问向量项时初始化为0

编程珠玑第一章课后题9——第一次访问向量项时初始化为0此题第一眼看上去好像无解,无论怎么想都是使用某个标志标识向量项是否是第一次被访问,但是无论用什么标识都有可能未初始化前就已经为对应的值,然而答案给了一个很神奇的方法,使用两个数组from,to和表示当前访问元素个数的变量top。工作原理假定向量为data,给定向量项的索引i,如果from[i]<top并且to[from[i]]=i则data[i]已经被初始化,否则没有。当第一次遇到索引i时,from[i] = topto[top] = i

2021-02-06 11:19:22 142

原创 PAT-A1049解题报告

题目大致意思是要求出1~N中数出现的1的个数。有种很直接的办法就是枚举1~N中的数,统计每个数共有多少位出现1,最后把结果累加起来。但这种办法在数据量大时用时过长,我们可以换个角度思考,把会被记录到总数的1按照位进行划分,统计第i位为1的在1~N中数字的个数,把得到的结果累加起来,就能得到1~N中数出现的1的个数。举例令N = 30710,从第一位开始统计每一位为1时数字的个数。第一位为1时为了不超过N,第一位的前面四位可以取0000,0001,...,3070,如果取3071就会得到30711超

2020-09-01 22:21:28 128

原创 抛弃旧有链表思维解决PAT-A1074

PAT-A1074不同于真正的链表,算法笔记上提出了一种静态链表来模拟实际链表,对于解题速度、准确性都有很大帮助。然而受限于原来链表思维,在解决有关链表的题目时虽然使用了静态链表,但解决问题的方式与使用实际链表时并无区别,这样导致解题准确度、速度依然很慢。这篇文章记录自己实现思路与题解思路的区别,以加深自己对静态链表的掌握。旧思路开一个数组作为静态链表,读入数据,初始化链表从头结点开始遍历链表,记录有效节点数量用一个双层循环,外层循环模拟按照k划分的每一组,内存循环用于实现链表逆置

2020-09-01 22:17:49 126

原创 PAT-A1093-解题报告

题目略,大致意思是要从一个只含P,A,T三种字符的字符串中找出为PAT的子串,此处子串的每个字符不要求在原字符串中连续出现,只要求先后顺序不变。初始想法是对于字符串中每个P统计其之后的AT的个数,也就是为每个字符A记录该字符后T的个数,从左到右遍历一遍数组,碰到P就维护计数器sum,从该位置开始扫一遍数组,碰到A就将该字符后T的个数累加到sum。很显然,这种方法的复杂度是O(n2)O(n^2)O(n2),遇到大量数据时就会超时,看了题解后豁然开朗,下面就讲讲高效题解的思路。思路有一个字符串a1a2.

2020-08-14 17:19:40 170

原创 PAT-A1010解题报告

PAT-A1010解题报告第一遍做这道题时就有了很朴素的想法,先把已知进制的数转换成10进制,再对未知进制进行二分。但是提交后发现很多测试点没有通过,仔细看了《算法笔记》后才发现有很多细节没有把握好,在这里就记录下我的解题过程,为后来者填坑。思路题目要求找一个未知进制,满足N1=N2N_1=N_2N1​=N2​,只需把二者都转换成10进制进行比较。假设N2N_2N2​的进制未知,能够很容易地推出,N2N_2N2​的大小随着进制的增加而增加,这样我们就能二分处理N2N_2N2​的进制,找到一个使等式成

2020-08-13 14:31:45 222

原创 python中的list,set,dict comprehension详解

什么是list,set,dict comprehension?这其实是python中提供的遍历、筛选一个序列(如list,set,dict)中元素的特殊语法,其本质为在for loop 中对一个序列中元素执行指定的操作,要实现一个comprehension语法,我们需要确定四个要素:目标序列,目标元素,遍历,筛选条件。list,set,dict comprehension 的用法假设我们有一...

2020-03-01 16:17:35 1847

原创 python中dict类详解

dict类相当于哈希表,对于每个key值都有一个value值与之对应,构造如下dict = {key1:value1,key2:value2,key3:value3,…}构造一个dic对象的方法如下1.直接构造d1 = {1:‘hello’,2:‘world’,‘a’:‘some value’}这种构造方法仅适用key-value对较少且事先知道的情况。在有了一个dict对象后,我们可以...

2020-02-29 11:55:47 1943

原创 解决4K屏幕下VMware虚拟机中图标、字体显示过小的一种简单办法

刚刚安装VMware Workstation pro15,创建了一个Ubuntu19.04虚拟机,可能是4K屏幕的缘故,界面中图标和字体都非常小,如图有一种简单的办法能解决这个问题在桌面上点击鼠标右键,选择“Settings“,弹出如下界面2.选择比例放大中的200%,再点击右上角的”应用“,界面变为如下效果还算合适,字体、图标都变为正常比例附全屏模式下隐藏上侧工具栏:全屏模式下,在...

2020-02-13 19:12:56 16987 4

空空如也

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

TA关注的人

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