自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Common API环境部署(保姆级教程,填充了很多坑)

这个教程是基于Windows平台实现的,使用了docker容器,docker容器拉取了一个ubuntu镜像,就相当于直接在windows平台中直接可以从事Linux环境下的开发,不再需要使用虚拟机去配置一个Linux环境。这样做的好处是比较方便快捷,节省电脑的性能。在Ubuntu镜像中部署了vsomeip和CommonAPI。然后又在vscode中添加了docker容器的扩展,这样我们就可以直接使用vscode进行开发了。

2023-03-05 12:54:10 3777 14

原创 GitHub介绍及使用方法

主要介绍GitHub的一些知识,以及如何配置并且使用GitHub

2022-09-26 14:26:40 1560

原创 AVLTrees

AVL树的旋转,插入,删除操作

2022-09-11 17:27:25 209

原创 1105 Spiral Matrix

题目#include <iostream>#include <bits/stdc++.h>using namespace std;bool cmp(int a,int b){return a>b;}int n;int main(){ cin >> n; vector<int> a; int tmp; for(int i = 0;i < n;i++){ cin >> tmp

2022-02-13 20:25:52 220

原创 1102 Invert a Binary Tree

题目解法使用静态链表构建二叉树用IsVisited数组保存所有的非根节点,遍历该数组就可得到根节点写层序遍历函数,只是先检查右子树,再检查左子树写中序遍历函数,也是先递归右子树,再递归左子树#include <iostream>#include <bits/stdc++.h>using namespace std;int N;struct Node{ int left,right;}A[11];bool IsVisited[11];vector&

2022-01-15 19:05:59 234

原创 1101 Quick Sort

1101 Quick Sort题目暴力办法:根据快排的思路,扫描数组,依次判断当前元素是否是主元#include <iostream>#include <bits/stdc++.h>using namespace std;const int MAXN = 1e5;int A[MAXN] = {0};vector<int> res;int N;int main(){ ios::sync_with_stdio(0),cin.tie(0),cout

2022-01-05 21:57:18 659

原创 算法探究6-K个一组翻转链表

常规题目来源:LeetCode-25-K个一组翻转链表思路:给已知链表加一个头节点HairHairHair(官方的代码还挺有趣)找出需要翻转的链表的头指针和尾指针(尾指针需要从头指针向后扫描K个,若不满足,则不翻转)保存尾指针的下一个节点地址nexnexnex,不然等这一段翻转结束后链表就串不起来了进入翻转函数进行翻转,这里使用了C++17的一个新功能,返回了一个用tie()tie()tie()函数组合的pairpairpair(一般函数的返回值只能是一个值,而这里同时返回翻转后链表的头指针和

2021-08-25 20:53:20 95

原创 算法探究2--多项式的乘积与和

多项式成绩

2021-06-29 21:19:42 592

原创 算法探究1--最大子列和问题

算法二:#include<iostream>using namespace std;int MaxSubseqSum2(int A[],int N){ int ThisSum = 0,MaxSum = 0; int i,j; for(i = 0;i < N;++i) { ThisSum = 0; for(j = i;j < N;++j) { ThisSum += A[j];

2021-06-24 19:04:33 183

原创 1. 存储器分类

存储器的分类存储器有很多的分类依据:按存储介质,读写功能,存取方式,在计算机中的作用等按存储介质分类磁性介质:磁盘,磁带光介质:光盘半导体介质:内存,固态硬盘(内存是易失性存储器,掉电后无信息保存,固态硬盘是非易失性存储器,掉电信息依然存在)按读写功能分类读写存储器:RAM,内存,磁盘只读存储器:ROM,光盘按存取方式分类顺序存取(SAM):磁带(存取的信息与位置有关)随机存取(RAM):内存,磁盘等直接存取(DAM):信息存取区域选取与RAM类似,区域内的操作与SAM类似

2020-11-12 19:44:10 1222 1

原创 2. 进程的状态与转换

一、进程的运行状态1. 创建态进程刚被创建时的状态,尚未进入就绪态创建进程的步骤:系统为进程分配唯一的标识符,并且申请PCB向PCB中写入控制和管理进程的基本信息为该进程分配所需的资源将进程的状态改为就绪态2. 就绪态进程获得了除处理机外的所有资源,只需获得处理机就可以运行如果有多个进程处于就绪态,则他们被存放在就绪队列中3. 运行态正在处理机上运行的状态,在单处理机上,每个时间只能有一个进程在处理机上运行4. 阻塞态进程正在等待某一资源而暂停运行的状态如果

2020-09-11 20:35:32 119

原创 1. 进程的概念和特征

进程的概念运行环境:多道程序环境(可以并发执行程序,程序执行时会间断以及不可再现)三个角度的定义:进程是程序的一次执行过程进程是一个程序及数据在处理机上顺序执行时所发生的的活动进程是具有独立功能的程序在一个数据集合上运行的过程,他是资源分配和调度的一个独立单位完善定义:进程是进程实体的运行过程,是系统资源分配和调度的独立单位进程控制块(PCB)概念:用来描述进程的数据结构作用:描述进程的基本情况和运行状态,进而控制进程和管理进程地位:进程存在的唯一标志1进程映像(进程实体

2020-09-11 19:48:40 335

原创 第四节 操作系统体系结构

大内核与微内核大内核将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而应用于提高性能的系统服务微内核为何提出:大内核不能满足应用需求。(需要操作系统提供的服务增加,接口形式复杂、操作系统的设计规模急剧增长,操作系统也面临着“软件危机”问题)实现:将内核中最基本的功能(如进程管理)保留在内核中,而将不需要在内核执行的功能转到用户态执行,那些移除内核的操作系统代码根据分层的原则被划分成若干服务程序,他们的执行相互独立,交互则都借助微内核进行通信优点:有效的分离了内核和服务,服务

2020-08-18 18:23:32 161

原创 3. 系统调用

什么是系统调用系统调用也叫广义指令系统调用是操作系统提供给应用程序的一个接口应用程序通过这个接口向操作系统申请内核服务#mermaid-svg-XbG78Dy1cD3ZzdyO .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-XbG78Dy1cD3ZzdyO .label text{fill:#333

2020-08-11 21:15:56 3447 1

原创 2.中断处理

本文的框架中断的作用从用户态切换到核心态的唯一方式使操作系统重新夺回CPU的控制权中断的类型其实这里所说的中断指的是外中断,内中断统称为异常内外中断的区别:内中断:中断与CPU正在执行的指令有关外中断:与CPU执行的指令无关,中断来自外部硬件#mermaid-svg-OTPdzad02sGJCM8t .label { font-family: 'trebuchet ms', verdana, arial; font-family: var(--mermaid-

2020-08-09 22:00:40 2140

原创 1. 操作系统的运行机制

内核程序与用户程序程序作用可否使用特权指令1CPU的运行状态2内核程序管理用户程序可以使用内核态(管态、核心态)用户程序被内核程序管理不可以使用用户态(目态)操作系统自身的层次结构特权指令:计算机中不允许用户使用的指令,如I/O指令、置中断指令、存取用于内存保护的寄存器、送程序状态字到程序状态寄存器等的指令 ↩︎CPU运行状态:一般有两种,即核心态和用户态。相当于CPU内部有一个小开关,置1为用户态,置0为核心态 ↩︎...

2020-08-08 20:45:53 282

原创 1. 线性表的顺序存储

顺序表的定义用一片连续的存储空间存放线性表,也就是逻辑上相邻的元素,在物理地址上也是相邻的假设线性表L存储的起始位置为LOC(A)LOC(A)LOC(A),每个数据元素占用的内存空间为sizeof(ElemType)\rm sizeof(ElemType)sizeof(ElemType),则存储结构图为数组下标顺序表内存地址0a1a_1a1​LOC(A)LOC(A)LOC(A)1a2a_2a2​LOC(A)+sizeof(ElemType)LOC(A)+\rm

2020-08-07 22:00:57 167

原创 第一节 线性表的定义及基本操作

线性表的定义线性表是具有相同数据类型的nnn个数据元素的有序序列,其中nnn为表长,当n=0n=0n=0时,线性表是一个空表。若用LLL命名线性表,则其一般表达式为:L=(a1,a2,⋯ ,ai,ai+1,⋯ ,an)L=(a_1,a_2,\cdots,a_i,a_{i+1},\cdots,a_n)L=(a1​,a2​,⋯,ai​,ai+1​,⋯,an​)a1a_1a1​a2a_2a2​⋯\cdots⋯aia_iai​ai+1a_{i+1}ai+1​⋯\cdots⋯an−1a

2020-08-07 19:05:29 186

原创 第二节 操作系统发展历程

操作系统发展历程第一个阶段:手工操作其实在这个阶段并没有诞生操作系统,程序的装入、运算、结果的输出都是由人工干预进行的过程如下:输入输出纸带机处理机纸带机优点:用户独占资源,不需要因其他程序抢占资源而等待缺点:CPU不能充分利用,性能低下第二阶段:批处理阶段在这个阶段引入了磁带机,提高了CPU的利用率过程如下:读入输入输出写出纸带机磁带机处理机磁带机纸带机在这个阶段又可分为两个阶段,即单道批处理和多道批处理单道批处理顺序性:读入内存的程序的先后顺序和存入磁带机

2020-08-04 21:55:34 1228

原创 第三节 算法相关题目

时间复杂度解题技巧本内容摘自王道数据结构,主要可以将问题分为两类:一类为主循环语句参与循环判断,另一类为主循环语句不参与循环判断主循环语句参与循环判断此类问题需要找出主体语句中与T(n)成正比的循环变量,将之带入条件中进行计算1 int i =1; while(i <= n) i = i*2;i×2i × 2i×2的次数正是主体语句的执行次数ttt ,因此有2t≤n2^t ≤n2t≤n,因此t≤log2nt≤log_2nt≤log2​n,则T(n)=O(log2n)T

2020-08-03 15:25:43 432

原创 第二节 算法概念及其评价

算法概念对特定问题求解步骤的一种描述,是指令的有限序列,其中的每个指令对应一个或多个操作。(简单来说,就是解决一个实际问题,你想怎样去解决它,将这个想法从头到尾描述下来,就是算法)算法的特征有穷性:算法可以在有限步骤内完成,程序不属于算法1,操作系统也不属于算法2确定性:同样的输入要能得到同样的输出结果可行性:使用现有的指令进行组合来实现算法的功能输入:算法可以有零个或多个输入输出:算法可以有一个或多个输出“好”算法的标准正确性:算法设计出来就是要发挥作用的,如果设计出来就是

2020-08-02 15:04:41 238

原创 操作系统目录

此文章用来链接所有操作系统章节第一章 操作系统概述第一节 操作系统基本概念

2020-08-01 21:17:21 333

原创 第一节 操作系统基本概念

操作系统的概念操作系统的层次结构为:硬件、操作系统、应用程序、用户操作系统对系统资源进行管理,合理组织和调度计算机的工作与资源分配,进而为用户和应用程序提供方便接口的程序集合操作系统是计算机系统中最基本的系统软件1操作系统的特征操作系统具有很多特征,其基本特征是并发、共享2、虚拟、异步并发计算机在同一时间段内间隔的执行多个进程宏观上看各个进程同时进行,而微观上则使用了分时技术使各个进程交替执行并发是在多道程序环境下存在的与并行的区别:并发:多个进程在同一时间段内间隔进行,宏

2020-08-01 21:14:55 673

原创 数据结构目录

此文章用于链接所有数据结构章节第一章 数据结构概述第一节 数据结构相关术语与数据结构三要素第二节 算法概念及其性能分析

2020-07-31 21:33:10 360

原创 第一节 数据结构基本术语与数据结构三要素

数据结构基本术语数据所有能输入到计算机供计算机进行处理的符号的集合,比如数字,字符,甚至于声音,图片等都是数据。数据元素可以理解为数据的一个单位,就比如数据库中的一条记录就是数据元素,或者是页表中的一个表项也是数据元素。数据项数据项是最小的,不可继续分割的数据单位,如数据库中一条记录中的对应的一项。数据对象性质相同的数据元素的集合,是数据的子集,如整数集N={0,±1,±2…}数据结构数据与数据之间的关系定义为:Data_Struct = (D,S),D为数据元素的有

2020-07-31 21:30:22 370

原创 堆的相关操作

堆堆的定义堆的类型堆结构的创建大顶堆的操作插入操作删除操作创建大顶堆取堆顶元素小顶堆的操作插入操作删除操作创建小顶堆取堆顶元素打印堆堆排序测试数据完整程序程序运行结果堆的定义堆(Heap)是一种数据结构,堆通常是可以被看做一棵完全二叉树的数组对象。堆的特性结构性:用数组表示的完全二叉树有序性:任一节点的关键字是其子树所有节点的最大值(或最小值)堆的类型最大堆(MaxHeap)...

2020-03-10 10:07:06 161

原创 二叉搜索树

文章目录二叉搜索树二叉搜索树的概念二叉搜索树的操作插入操作非递归插入递归插入删除操作非递归删除递归删除查找操作非递归查找递归查找测试用例中序遍历完整代码二叉搜索树二叉搜索树的概念二叉搜索树又称二叉排序树,或者是空树或者是具有以下性质的二叉树1 若左子树非空,则左子树上所有节点关键字值均小于根节点的关键字2 若右子树非空,则右子树上所有节点关键字值均大于根节点的关键字3 左右子树本身也分...

2020-03-08 21:07:03 132

原创 二叉树的层次遍历

102.二叉树的层次遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。来源:力扣(LeetCode)链接:link著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。分析:本题使用宽度优先搜索(BFS),对每一层的元素同时进入队列,然后出队时同时出队,再换下一层的同时入队。C++源码:/** * Definition for a ...

2020-03-01 11:15:47 128

原创 相同的树

100.相同的树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:示例2:示例3:分析:将两棵二叉树都进行前序遍历,分析每个节点的对应元素是否一致...

2020-03-01 09:06:53 41

原创 Z字形变换

6.Z字形变换将一个给定字符串根据给定的行数,以从上往下、从左到右Z字形排列。比如输入字符串 “LEETCODEISHIRING” 行数为3时,排列如下:之后,你的输出需要从左往右逐行读取,产生一个新的字符串,比如:“LCIRETOESIIGEDHN” 。示例1:输入:s = “LEETCODEISHIRING”输出:“LCIRETOESIIGEDHN”示例2:输入:s = “L...

2020-02-25 09:36:32 71

原创 有效的括号

20.有效的括号给定一个只包含 ‘(’ ,’)’ ,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。注意空字符串可被认为是有效的字符串。示例1:输入:"()"输出:true示例2:输入:"( ]"输出:false来源:力扣(LeetCode)链接:link著作权归领扣网...

2020-02-24 15:26:01 52

原创 删除链表中的重复元素

83.给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入:1 -> 1 -> 2输出:1 -> 2示例2:输入:1 -> 1 -> 2 -> 3 -> 3输出:1 -> 2 -> 3来源:力扣(LeetCode)链接:link著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。C++源...

2020-02-23 11:09:32 88

原创 旋转链表

61.旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例1:输入:1 -> 2 -> 3 -> 4 -> 5 -> NULL,k = 2输出:4 -> 5 -> 1 -> 2 -> 3 -> NULL示例2:输入:0 -> 1 -> 2 -> NULL,k = 4输...

2020-02-23 10:50:45 56

原创 四数之和

18.四数之和给定一个包含 n 个整数的数组 nums 和一个目标值 target ,判断是否存在四个元素 a ,b,c,d,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [ 1 , 0 , -1, 0 , -2 , 2 ] ,和 target = 0。满足要求的四元组集合...

2020-02-22 18:33:27 117

原创 三数之和

15.三数之和给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素a,b,c,使得 a + b + c = 0? 找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [ -1 , 0 , 1 , 2 , -1 , -4 ] , 满足要求的三元组集合为:[[ -1 , 0 , 1 ],[ -1 , -1 , 2 ]...

2020-02-22 17:35:32 79

原创 两两交换链表中的节点

24.两两交换链表中的节点给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1 -> 2 -> 3 -> 4,你应该返回 2 -> 1 -> 4 -> 3.来源:力扣(LeetCode)链接:link著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2020-02-22 10:03:45 88

原创 删除链表的倒数第N个节点

19.删除链表的倒数第N个节点给定一个链表,删除链表的倒数第N个节点,并返回链表的头节点。示例:给定一个链表:1 -> 2 -> 3 -> 4 -> 5,和 n = 2。当删除了倒数第二个节点后,链表变为 1 -> 2 -> 3 -> 5.说明:给定的 n 保证是有效的。来源:力扣(LeetCode)链接:link著作权归领扣网络所有。商业...

2020-02-22 09:15:59 152

原创 合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。

23.合并 k 个排序链表合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1 -> 4 -> 5,1 -> 3 -> 4,2 -> 6]输出:1 -> 1 -> 2 -> 3 -> 4 -> 4 -> 5 -> 6来源:力扣(LeetCode)链接:link著作权归领...

2020-02-21 17:42:41 718

原创 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

21.合并两个有序链表将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有结点组成的。示例:输入:1 -> 2 -> 4 , 1 -> 3 -> 4输出:1 -> 1 -> 2 -> 3 -> 4 -> 4来源:力扣(LeetCode)链接:link著作权归领扣网络所有。商业转载请联系官方授权,非商业转...

2020-02-21 17:05:32 323

原创 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。

43.字符串相乘给定两个以字符串形式表示的非负整数 num1 和num2 ,返回 num1 和 num2 的乘积,他们的乘积也表示为字符串形式。示例1:输入:num1 = “2” , num2 = “3”输出:“6”示例2:输入:num1 = “123” , num2 = “456”输出:“56088”说明:1.num1 和 num2 的长度小于110.2.num1 和 num...

2020-02-21 11:02:44 3976

顺序表的相关操作实现

本文展示顺序表的一些基本操作,包括静态顺序表和动态顺序表的初始化,按位置查找,按值查找,插入操作,删除操作等,用作数据结构系统学习的资料,比较完整

2020-08-07

空空如也

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

TA关注的人

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