自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树后序遍历保存从根到结点路径方法

框架如下:关键点在于stack.push_back();以及stack.pop_back()的时间点。void function(TreeNode* root , vector<int>& stack){ if(root != NULL) { stack.push_back(root->val); function(ret , root->left , stack); function(ret , root-

2022-03-25 10:19:32 1194 1

原创 关于单核可抢占linux系统内核同步问题

内核活动:系统调用或者异常(处在进程上下文,可以睡眠)中断软中断(可延迟函数)注意:这是单核可抢占,所以处在进程上下文当中的系统调用或者异常是会交织执行的,但在单核不可抢占的内核中系统调用和异常之间只能串行执行。分析要点:判断谁与谁会交织执行判断它们之间谁会抢占谁(有助于理解谁需要使用保护措施)判断是否可以睡眠(是否处于进程上下文)例子如下:(1):系统调用和系统调用之间:首先在单核可抢占的情况下会交织执行;其次它们都有可能抢占对方;最后,它们处在进程上下文,所以可以使用睡眠锁。

2022-03-18 16:17:47 228

原创 回溯(穷举)经典问题:力扣46:全排列

先贴代码:class Solution {public: vector<vector<int>> permute(vector<int>& nums) { vector<vector<int>> des;//保存最终结果 vector<int> track;//已经选择的路径 vector<int> sig(nums.size() , 0);//标记已经选择

2022-03-18 10:11:59 151

原创 力扣105、106:由中序遍历以及前序或者后续遍历构造二叉树

思想:递归构造提示:在每一层递归着眼于当前接结点应该做的事情://函数签名:构造左子树或者右子树,并且返回头结点。拿前序和中序做例子:引用网图:struct TreeNode* creatb_tree(int* preorder , int* inorder , int pre_start , int pre_end , int in_start , int in_end){ if(pre_start <= pre_end){ struct TreeNode* p =

2022-03-14 10:00:42 1880

原创 力扣236:二叉树的最近公共祖先

方法:后续遍历原因:对于每一个结点,该做的事情就是1、看左右子树中是否包含符合要求的结点。2、自己是否符合要求。那么情况分为如下(对于一个结点来说):1、左右子树都没有满足的结点,自己也不符合2、左右子树有一个符合,自己不符合3、左右子树有一个符合,自己符合另外一个(可以确定最终结果)4、左右子树已经包含要求结点(可以确定最终结果)代码中返回1表示有符合的情况,返回0表示没有符合的情况或者已经找到结果的情况。int function(struct TreeNode* root , str

2022-03-11 20:48:41 557

原创 力扣221:最大正方形

代码有些丑陋,但也分享一下解题思路算法:动态规划状态定义:arry[i][j]表示(i,j)为边界,向左上方看,能够组成的最大正方形的边长。状态转换:分情况讨论1、matrix[i][j] = 0 ,那么arry[i][j] = 0;2、matrix[i][j] != 0,再分情况讨论:(1)arry[i - 1][j] == arry[i][j - 1](2)arry[i - 1][j] != arry[i][j - 1]代码如下: int min(int a , int b){

2022-03-02 15:24:51 543

原创 力扣413:等差数列划分

运用算法:动态规划状态定义:状态1:arry[i][0]表示以nums[i]结尾,向前看,能够组成的最长等差数列所含有的元素个数。状态2:arry[i][1]表示以nums[i]结尾,向前看,所组成的等差数列的公差。状态的转移:对于下标i来说,具体处理过程如下:1、判断当前的元素是否能够加入前面的等差数列2、当能够加入时(公差相等),arry[i][0] = arry[i - 1] [0]+1;arry[i][1] = arry[i - 1][1];3、当不能加入时(公差不相等),那么下标i与

2022-03-02 11:26:56 514

原创 操作系统真象还原

mbr.S->loader.S:当os镜像被加载之后,cpu转去main的起止位置开始执行。(到目前为止,控制权已经掌握在自己手里)接下来就要一步一步搭建起内核模块:一:实现基本的输入输出功能(lib/kernel/print.h 以及print.S)接口:put_char() ; put_str() ; put_int() ; set_cursor() ; cls_screen()实现的语言:汇编。实现的原理:操纵显存以及显卡端口即可。需要储备显卡相关知识。二:构建中断框架:操作端口

2022-02-26 20:37:54 1371

原创 linux学习笔记

linux缓存与页交换转载出处一些设计到的数据结构之间的关系:一些重要数据结构之间的关系图1:图2:图3:内存管理模块:有关zone:转载出处

2022-02-24 08:53:04 488

原创 leetcode之动态规划--有关后效性问题与状态的定义例题对比

53题与152题之间的对比链接:53题:最大子序和152题:乘积最大子数组可以先做53题。从152题去理解后效性以及状态的定义:我一开始是模仿53题去做的,152题代码如下:int maxProduct(int* nums, int numsSize){//存储状态数组//这里定义的状态是:以*(num + i)为结尾的最大乘积int arry[numsSize];//初始化:arry[0] = *(nums);//for(int i = 1 ; i < nums

2022-02-21 10:49:01 404

原创 apue笔记之文件系统

文件系统:做一个类ls的实现:如myls补充内容:想创建名为 -a 的文件:touch -a //报错解决方法:1:touch ./-a2: touch – -a//–告诉命令选项结束。一、目录和文件1、获取文件属性:(1)、stat(2)、fstat(3)、lstat2、文件访问权限3、umask4、文件权限的更改/管理5、粘住位6、文件系统:FAT , UFS7、硬链接,符号链接8、utime9、目录的创建和销毁10、更改当前工作路径11、分析目录/读取目录

2022-01-25 18:31:47 781 1

原创 I/O之系统调用I/O

系统调用I/O:man手册第二章注意:fd是在文件IO(系统调用I/O)中贯穿始终文件IO相关函数:open , close , read , write , lseek(1)open:变参实现涉及问题:1、文件IO与标准IO的区别区别:响应速度&吞吐量提醒:标准IO与文件IO不可以混用转换:fileno , fdopen;示例代码:putc("a");write(1 , "b" , 1);putc("a");write(1 , "b" , 1);//输出结果为:bba

2022-01-23 12:17:55 280

原创 APUE 学习笔记(I/O之标准I/O)

标准I/O(stdio):一切实现的基础stdio相关函数:man手册第三章man手册第一章:基本命令man手册第二章:系统调用man手册第三章:标准库函数man手册第七章:机制注意:在标准IO中有一个FILE类型贯穿始终1.fopen()原型:FILE *fopen(const char *path , const char *mode)(1) const修饰说明函数不会修改用户传过来的内容,让用户放心用(知识点:指针常量,常量指针)。(2)返回值注意点:当失败时,不仅返回一个NULL

2022-01-23 12:16:28 381

原创 linux虚拟机网络问题

【转载】问题描述:网络突然无法使用。https://www.cnblogs.com/python-wen/p/11607969.html

2021-12-30 10:16:14 353

原创 实践周(springboot+sql)

时间:2021/7/2[注]:文章仅供自己学习记录,如有侵权,立删。内容:实践周图书管理系统技术点:springboot+mysql(初次接触)项目整体结构:项目结构细分:前端:实体类:与前端交互的后台:功能:...

2021-07-02 09:11:33 82

原创 Filter过滤器

java过滤器学习文章(Filter过滤器)文章链接:https://www.cnblogs.com/cainiao-chuanqi/p/11326793.html学习总结:Filter过滤器实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。Filter功能:(在doFilter方法中实现)在HttpServletRequest到达 Servlet 之前,拦截客户的HttpServletRequest 。根据需要检查HttpServletRequest,也可以修改HttpSe

2021-07-01 10:54:53 53

原创 <bochs虚拟机安装问题>

在make的时候报错:Compile error: X11/extensions/Xrandr.h: No such file or directory解决方法:#安装X11(解决下面的问题2)yum -y install ghc-X11yum -y install ghc-X11-devel转载自添加链接描述

2020-12-10 20:43:10 195

原创 <c语言>声明的剖析

int *( * ( * ( *abc)() ) [6] ) ();分析这个声明:1:abc是一个指针(1)2:指针(1)指向的是一个函数3:这个函数的返回值是一个指针(2)4:这个指针(2)指向的是一个数组5:这个数组的元素是指针(3)6:这个指针(3)指向一个函数7:这个函数的返回值是一个指向整形的指针。...

2020-12-08 21:06:35 57

原创 <hurlex-doc环境搭建之总结篇>

基于本机centos7虚拟机搭建起hurlex-doc项目环境个人配置信息:1:虚拟机:centos7minimal版环境搭配过程以及遇到的问题:1:网络配置。问题:一开始采用桥接的方式,但是遇到很多问题,无效;然后更改为NAT方式,成功,方式请查看以前的博客。2:hurlex-doc项目工具:(1)大型项目工具make;(2)自然少不了c语言编程环境,即gcc,nasm;(3)以及运行项目的qemu虚拟机————下载方式:(1)(2)均可通过yum方式下载,(3)参照以前博客下载 注:本人也是

2020-12-06 09:33:48 252

原创 (hurlex环境部署)centos之nasm

yum install build-essential nasm

2020-12-05 20:16:01 634

原创 centos网络配置

环境:VMWare 10系统:CentOS7.6第一步:VMWare 虚拟机网络设置为NAT模式第二步:查看虚拟机网络配置 编辑=》虚拟机网络设置虚拟机网络编辑器NAT设置:DHCP设置开始IP地址:我们作为该虚拟机的IP地址即为IP地址:192.168.142.128子网掩码:255.255.255.0网关:192.168.142.2第三步:查看linux的网络配置文件并修改配置文件1cd /etc/sysconfig/network-scripts/1vi ifc

2020-12-05 20:14:04 117

原创 centos7下安装qemu(修改yum源的方式)

yum安装qemu1、修改yum源为阿里云(提示:在这一步之前请先确认是否具有wget命令,如果没有请先安装wget)cd /etc/yum.repos.dmv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repobak//下载新的CentOS-Base.repo 到/etc/yum.repos.d/wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.a

2020-12-05 12:18:28 2917

原创 2020-11-17

数据库关于嵌套查询的一些知识点运用到HAVING时一些注意事项作用的角度考虑个人理解运用到HAVING时一些注意事项作用的角度考虑group by 子句将中的唯一的值组合成为一组,得到虚拟表vt5。如果应用了group by,那么后面的所有步骤都只能得到的vt5的列或者是聚合函数(count、sum、avg等)。原因在于最终的结果集中只为每个组包含一行。这一点请牢记。 (摘选https://editor.csdn.net/md/?not_checkout=1)个人理解运用到having的时候,要注

2020-11-17 16:37:21 107

空空如也

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

TA关注的人

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