自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(254)
  • 资源 (1)
  • 收藏
  • 关注

原创 【常用算法模板】快排+二维前缀和+快速幂

【代码】【常用算法模板】

2023-03-14 16:26:21 64

原创 常用知识点汇总(防止自己又忘

substr函数第二个参数是子串长度!!!#include<string>#include<iostream>using namespace std;int main(){  string s("12345asdf");  string a = s.substr(0,5); //获得字符串s中从第0位开始的长度为5的字符串  cout << a << endl;}//输出12345形式:s.substr(pos, n)

2021-09-01 17:39:38 127

原创 论文提交camera ready事宜【dvi文件生成】

后记,其实在overleaf或者tex studio生成pdf文件没问题后,用步骤2的方法生成dvi文件即可,也可以不用预览dvi文件。我是想预览一下没问题,再准备提交,这样比较放心。起初我使用tex live带的dvi预览器(dviout.exe),发现出现下面报错,具体原因我也不清楚。于是,我又下载了tex maker,他的左上角可以选择dvi预览,加载成功eps图片后,基本没有问题了。使用编辑器里的工具自动生成,如图为tex studio。使用编辑器里的工具自动生成,如图为tex maker。

2023-06-11 16:14:09 1243

原创 【网络编程】

因为如果不创建子进程的话,就只有一个进程在一个死循环里不断通信,那么就无法accept下一个客户端通信。网络字节序都是大端的,主机字节序是自己的字节序,规定通信的时候都统一使用网络字节序。比如两台机器通讯,如果字节序不一致的话,解析出来的内容就会不一样。:数据的低位在内存的低位,数据的高位在内存的高位;这里的文件描述符对于内存中的一块缓冲区,对应读缓冲和写缓冲。发送数据之前,要将主机字节序转换成网络字节序。-p 显示正在使用socket的程序的名称。发送数据是由底层的TCP模块帮我们完成的。

2023-04-26 17:30:24 634 1

原创 【线程同步】

与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同程序,且共享同一份全局内存区域,其中包括初始化数据段、未初始化数据段,以及堆内存段。(传统意义上的 UNIX 进程只是多线程程序的一个特例,该进程只包含一个线程)进程是 CPU 分配资源的最小单位,线程是操作系统调度执行的最小单位。线程是轻量级的进程(LWP:Light Weight Process),在 Linux 环境下线程的本。

2023-04-25 12:09:03 500

原创 2.19 信号概述

◼ 许多信号相关的系统调用都需要能表示一组不同的信号,多个信号可使用一个称之为信号集的数据结构来表示,其系统数据类型为 sigset_t。3.这个未决状态的信号,需要被处理,处理之前需要和另一个信号集(阻塞信号集),进行比较。◼ 信号的 “未决” 是一种状态,指的是从信号的产生到信号被处理前的这一段时间。◼ 信号的 “阻塞” 是一个开关动作,指的是阻止信号被处理,但不是阻止信号产生。所以一般情况下信号的阻塞只是暂时的,只是为了防止信号打断敏感的操作。◼ 前 31 个信号为常规信号,其余为实时信号。

2023-04-23 21:28:13 631

原创 【归并排序】148. 排序链表

【代码】【归并排序】148. 排序链表。

2023-04-04 14:58:51 98

原创 2.10-2.18 进程间通信/IPC【含案例ps aux | grep xxx实现】

进程之间是独立的:他们不能通过栈空间的变量来共享信息,因为都是不同的资源进程不是孤立的:比如一个下载视频的进程和播放视频的进程,二者需要进行信息的交互资源的同步和异步:同步:去医院看病,一个病人看完才能进行下一个,不会产生安全问题异步:所有病人一块看病,产生隐私安全问题。

2023-04-01 23:42:11 351

原创 2.7 进程退出、孤儿进程、僵尸进程+2.8 wait函数+2.9 waitpid函数

5.调用exit(0);但是还可以调用_exit(0),不刷新缓冲区。\n和fflush(stdout)在这里起的作用是刷新缓冲区。4.手动刷新缓冲区fflush(stdout)。子进程退出时:父进程帮助子进程回收内核区的资源。子进程die,父进程没有去回收子进程的资源。子进程的父进程id变成init = 1。杀死父进程,让子进程被init进程托管。因为他不知道还有个孤儿进程没执行完毕。子进程的状态已经变成zombie。

2023-04-01 16:22:51 586

原创 2.6 exec函数族

函数族:一系列功能相似的函数,类似C++的函数重载,C语言中没有函数重载exec:并不是生成一个新的进程一般是先fork一个子进程,然后把子进程的实体替换掉。

2023-04-01 15:28:32 97

原创 2.3-2.5 进程创建+虚拟地址空间+GDB多进程调试

fork产生的子进程与父进程相同的文件文件描述符指向相同的文件表,引用计数增加,共享文件偏移指针。也就是说,资源的复制是在需要写入的时候才会进行,在此之前,只有以只读方式共享。只有在需要写入的时候才会复制地址空间,从而使各个进程拥有各自的地址空间。内核此时并不复制整个进程的地址空间,而是让父子进程共享同一个地址空间。一次是在父进程中,一次是在子进程中。比如父进程的栈空间的pid>0,而子进程的栈空间的pid=0。父进程和子进程的代码都是一样的,只是根据。在父进程中返回创建的子进程的ID,

2023-03-30 12:29:17 204

原创 2.2 进程状态转换

阻塞态:比如等待一个用户的输入,不能直接变成运行态;因为阻塞的时候已经让出了CPU资源。就绪态:简单理解,进程已经有了CPU的资源,但是没有CPU的执行权,处于等待的状态。ps aux是一个快照,不能动态显示。当前运行的程序的父进程就是当前的终端。就绪态、阻塞态也可以到达终止态。PPID 父进程的ID。PGID进程组的ID。-9 信号,强制杀死。

2023-03-23 20:33:37 201

原创 2.1 进程概述

不占用CPU的资源和内存;但是程序是文件,占用磁盘的大小。时间片不能太短,进程切换浪费时间;也不能太长,宏观上不能同时执行。进程是操作系统为程序分配的内存资源(内存、CPU)、一个进程启动起来,会为他分配一个虚拟地址空间。占用内存和CPU资源。

2023-03-23 20:05:38 86

原创 二维前缀和

【代码】二维前缀和。

2023-03-19 19:05:31 84

原创 二叉树的深度与高度

以边为度量二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。以结点为度量(力扣使用的)二叉树节点的深度:指从根节点到该节点的最长简单路径结点的个数。【从上到下】二叉树节点的高度:指从该节点到叶子节点的最长简单路径结点的个数。【从下到上】因为求深度可以从上到下去查 所以需要前序遍历(中左右),而高度只能从下到上去查,所以只能后序遍历(左右中)

2023-03-19 11:08:38 910

原创 1.17-1.30 文件IO

一言以蔽之,标准C库IO函数 和 Linux系统IO函数 就是 调用 与 被调用 的关系。标准C库IO函数更加高级,效率更高;Linux系统IO函数更偏向底层。

2023-03-14 22:27:31 239

原创 1.13-1.16 GDB调试

源码int a , b;a = 10;b = 30;++ i) {// 函数调用 int res = test(i);!!\n");return 0;i < a;生成带调试信息的编译指令运行gdbgdb test设置参数退出gdbq。

2023-03-14 21:52:26 64

原创 1.10-1.12 Makefile

举个栗子,如下为redis-5.0.10的项目目录,有很多的文件有了Makefile文件,可以简单的make一下就可以对项目文件进行编译,最终生成可执行程序。

2023-03-14 18:48:38 249

原创 1.9 静态库和动态库的对比

125、C++从代码到可执行程序经历了什么?

2023-03-14 17:40:42 255

原创 1.6 动态库的制作和使用

lib,/usr/lib包含了系统自带的动态库文件,如果重名了的话会被替换,系统程序可能出问题。当我们的程序使用动态库的一个API的时候,就会查找动态库的绝对路径,然后加载到内存当中。这个就是打开/etc/ld.so.conf之后的效果,将so的绝对路径添加进去。检查一下是否成功添加,也可以成功运行。运行时需要把动态库加载到内存中。添加动态库的绝对路径到环境变量。把so文件拷贝到lib目录下。编译时不会报错,运行时报错。-l(小L)动态库的名称。生成与位置无关的代码。添加动态库的绝对路径。

2023-03-14 17:18:48 231

原创 【大小堆】剑指 Offer 41. 数据流中的中位数

【代码】【大小堆】剑指 Offer 41. 数据流中的中位数。

2023-03-12 23:00:54 192

原创 【笔试题】百度+美团

小团找到一颗有n个节点的苹果树,以1号节点为根,且每个节点都有一个苹果,苹果都有一个颜色,但是这棵树被施加了咒术,这使得小团只能从某一个节点的子树中选取某一种颜色的拿。每次她会指定一个节点t,如果小团只能从节点t的子树中选取某一种颜色的苹果,选取什么颜色能拿到最多的苹果?接下来q行,每行一个正整数t表示询问:如果小团只能从节点t的子树中选取某一种颜色的苹果,选取什么颜色能拿到最多的苹果?如图所示: 摆数字1,2,3,4,5,6,7,8,9 分别需要花费 2,5,5,4,5,6,3,7,6根火柴。

2023-03-11 18:06:07 2012 1

原创 【树状数组】307. 区域和检索 - 数组可修改

【代码】【树状数组】307. 区域和检索 - 数组可修改。

2023-03-09 21:26:14 55

原创 1.4 静态库的制作

保密性:比如你开发的一个压缩算法拿去卖钱,使用库可以避免被人看出逻辑,即使反编译也没用add.c。

2023-03-06 21:53:00 68

原创 1.2+1.3 GCC

【纠错】输入的参数 -s 是错误的(没有 -s 参数,只有 -S 参数,手误),应该是 -c 参数。-c 生成目标代码 test.o,test.o 不是一个可执行程序。如果下一步需要继续链接成可执行程序,需要输入指令 gcc test.o -o test.out(这里直接将 .o 目标文件链接成可执行程序 test.out,可以有多个 .o 文件,这里只有一个)gcc编译C程序,g++编译C++程序(也可以编译C程序。意义:方便调试,发布的时候不需要输出宏的地方。引入头文件代码,删掉注释,宏替换。

2023-03-06 17:28:19 220

原创 1.1 Linux开发环境搭建

跟着这个博主解决,没找到添加项在哪,自己在下面的配置文件中手动添加的,然后就不报错了。这样之后用vscode连接Ubuntu虚拟机就不需要每次输入密码啦~每次连接都需要输入Ubuntu服务器的密码,很麻烦。查看Ubuntu服务器的IP地址时,如果。添加mingw的include路径。失败,需要先安装一下net工具。

2023-03-01 21:30:54 225 1

原创 剑指 Offer 35. 复杂链表的复制

请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。输入:head = [[7,null],[13,0],[11,4],[10,2],[1,0]]输出:[[7,null],[13,0],[11,4],[10,2],[1,0]]需要改变新结点指向的random也要是新节点。

2023-02-28 10:50:56 43

原创 【字节题库】146. LRU 缓存

it获得迭代器所指向的对象实例,所以map[key]得到。

2023-02-27 18:15:17 82

原创 3. 无重复字符的最长子串

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。输入: s = “abcabcbb”

2023-02-27 16:43:41 43

原创 【字节题库】5. 最长回文子串

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。给你一个字符串 s,找到 s 中最长的回文子串。

2023-02-27 16:22:11 76

原创 C语言结构体对齐

c++11以后引入两个关键字 alignas 与 alignof。其中alignof可以计算出类型的对齐方式,alignas可以指定结构体的对齐方式。因为alignas只能指定比默认值,也就是结构体最长字段,更大的值。所以对齐大小要么是默认值,要么是比默认值大的值。->因为min(4, 2) = 2, 现在变成。因此,最后这个结构体的大小是。因此,最后这个结构体的大小是。因此,最后这个结构体的大小是。因此,最后这个结构体的大小是。null代表内存填充为空。,所以结构体总体应该是。,所以结构体总体应该是。

2023-02-26 16:56:52 562

原创 剑指 Offer 51. 数组中的逆序对

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。输入: [7,5,6,4]

2023-02-26 15:07:25 55

原创 剑指 Offer 51. 数组中的逆序对

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。输入: [7,5,6,4]

2023-02-25 19:19:33 41

原创 剑指 Offer 43. 1~n 整数中 1 出现的次数

例如,输入12,1~12这些整数中包含1 的数字有1、10、11和12,1一共出现了5次。输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数。注意一些细节,代码注释里写了。

2023-02-25 11:06:35 56

原创 剑指 Offer 68 - II. 二叉树的最近公共祖先

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1。例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。解释: 节点 5 和节点 1 的最近公共祖先是节点 3。

2023-02-24 22:36:40 42

原创 剑指 Offer 65. 不用加减乘除做加法

写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。C++中负数不支持左移位,因为结果是不定的。输入: a = 1, b = 1。

2023-02-24 21:58:54 46

原创 面试题67. 把字符串转换成整数

【代码】面试题67. 把字符串转换成整数。

2023-02-23 22:26:04 60

原创 面试题13. 机器人的运动范围

地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1]。一个机器人从坐标 [0, 0] 的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格 [35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?输入:m = 2, n = 3, k = 1。

2023-02-23 21:30:30 55

原创 面试题59 - II. 队列的最大值

请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。若队列为空,pop_front 和 max_value 需要返回 -1。输出: [null,null,null,2,1,2]

2023-02-22 17:49:44 43

原创 面试题45. 把数组排成最小的数

public :});ans += s;} };

2023-02-22 17:34:52 44

2009-2020操作系统真题(大题).docx

2009-2020操作系统真题(大题),文档为本博主搜集的历年答案,很全面。包含了内存管理,文件管理,磁盘管理等等具体内容,解答全面细致。

2020-06-18

空空如也

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

TA关注的人

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