自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 资源 (1)
  • 问答 (26)
  • 收藏
  • 关注

原创 基础数据结构测试

今天晚上考了基础数据结构,把题拿出来跟大家分享一下,希望对大家有一定的帮助!!!时间复杂度,即执行了多少次,i是从1到n,j是从n到0,又因为这个是for循环的嵌套,所以正确答案D.O(n^2)首先来看A 线性表即顺序表和链表 正确B 顺序表必须占用一块连续的内存 无论是逻辑上还是物理上都是连续的 正确C 链表没有明确的规定 所占内存可连续 可不连续 都可以的 错误D 链表的实现方式 正确A.单链表要实现尾删尾插的话,得从头开始遍历,那么时间复杂度就是O(n)B.单循环链表

2021-11-20 14:14:58 593

原创 Linux阶段复习题

前台晚上考的Linux阶段性复习题,考的有些个烂,被老师提出去训了一顿,确实还是基础不行啊,今天把这个题拿出来与大家分享一下,希望对大家有帮助,都会附有答案和讲解,也说明了Linux中,基础很重要,我比较注重实操代码,后面的代码题,都还是没问题的,就是前面的理论有些个烂,加油,兄弟们!第一阶段复习考试题(问答题)每题3分1、简述如下目录的功能(这些是重要的,必须掌握的,其他的目录作为了解就好)/boot 开机引导目录/etc 配置文件目录/lib 存放库文件/bin 普通用户可执行的指令/ho

2021-11-16 13:42:38 1189

原创 IP地址、子网掩码、网络地址之间相关的计算

而其后面的/29就说说它的子网掩码的IP地址换算成二进制的话,前29位都是1,后面拿0补充满32位,即:11111111.11111111.11111111.11111000,子网掩码转换成十进制的话就是:255.255.255.248。上述IP地址为1.1.1.1,后面的/29代表的是它的子网掩码为29位,首先IP地址由4组8位二进制数字组成,中间拿点(.)隔开也就是说上面IP换算成二进制就是下面这样的。A类地址在第一组的地址为1~127,其默认的子网掩码为:255.0.0.0。

2022-11-17 13:13:26 4158 1

原创 SYN攻击(典型DDOS攻击)---拓跋阿秀笔记记录

所以服务器容易受到SYN洪泛攻击。SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server则回复确认包,并等待Client确认,由于源地址不存在,因此Server需要不断重发直至超时,这些伪造的SYN包将长时间占用未连接队列,导致正常的SYN请求因为队列满而被丢弃,从而引起网络拥塞甚至系统瘫痪。SYN 攻击是一种典型的 DDoS 攻击。

2022-11-10 20:43:29 478

原创 原子操作是如何实现的?---(拓跋阿秀笔记记录)

但是,处理器提供总线锁定和缓存锁定两个机制来保证复杂内存操作的原子性。所谓“缓存锁定”是指内存区域如果被缓存在处理器的缓存行中,并且在Lock操作期间被锁定,那么当它执行锁操作回写到内存时,处理器不在总线上声言LOCK#信号,而是修改内部的内存地址,并允许它的缓存一致性机制来保证操作的原子性,因为。频繁使用的内存会缓存在处理器的L1、L2和L3高速缓存里,那么原子操作就可以直接在处理器内部缓存中进行,并不需要声明总线锁,在Pentium 6和目前的处理器中可以使用“缓存锁定”的方式来实现复杂的原子性。

2022-11-10 00:01:42 503

原创 拓扑排序----(无所谓,我会出手)

最近刷题一直刷到有向图的拓扑排序,今天也是抽出时间给这玩意搞懂了。就不在这里粘贴百度搜索的拓扑排序的定义了,莫得意义。

2022-11-08 16:30:32 401

原创 被free回收的内存是立马返还给操作系统嘛?

不是的,被free掉的内存首先会被ptmalloc使用双链表保存起来,当用户下一次进行申请的时候,会尝试在这些中找到合适的内存进行返回,这样避免了系统的频繁调用,占用过多的资源,同时ptmalloc也会尝试对小内存进行合并,避免过多的内存碎片。-------《拓跋阿秀》

2022-11-04 21:16:57 422

原创 进程调度算法(拓跋阿秀笔记记录)

有利于长作业,不利于短作业,因为短作业必须等到前面的长作业进行完毕才可以轮得到它,而长作业进行的时间一般很长,就会导致短作业等待时间过长。优先级越高的任务队列,时间片越短、反之,优先级越低的任务队列,时间片越长,为了便于那些超大作业的完成,最后一个队列(优先级最低的队列)的时间片一般很大。当时间片用完时,由计时器发出时钟中断,调度程序便停止该进程的执行,并将它送往就绪队列的末尾,同时继续把 CPU 时间分配给队首的进程。如果新的进程需要的时间更少,则挂起当前进程,运行新的进程。

2022-11-03 18:16:54 516

原创 替换空格-----牛客

例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。请实现一个函数,将一个字符串中的每个空格替换成“%20”。

2022-11-03 16:12:37 67

原创 小红拿到了两个整数a和b。

有且仅有这一种特殊情况,其他的例如输入a = 0 b = 1或a = 1 b = 0这种的都是直接返回-1。现在看来确实蛮简单的,当时没写出来属实是我太菜了!

2022-10-21 11:47:22 1076 4

原创 TCP协议为什么是可靠的?(校验和)

其中说到了一个校验和,这个点对我来说还是蛮新颖的,经过大半天的学习搜索,大致理解了校验和的计算过程。

2022-10-16 09:10:58 211

原创 力扣198、打家劫舍

每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。4.如果有两家以上的话,综合上述的描述,当我们遍历到第三家的时候需比较一下第一家、第三家加起来的收益有没有第二家的收益高,依次循环遍历完数组nums,就可以得到收益最高的偷法。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。方法思路:动态规划 题目如下红色字体所示。首先根据上题所示中可以得到的信息是。

2022-09-06 19:47:44 84

原创 C++报错:在形参表中不匹配

我乍一看觉得没毛病啊,比较nums[0]和nums[1]的大小,仔细一看发现max后面的括号写错了,我属实太蠢了,应该是:max(nums[0],nums[1]);应该是圆括号的 写成方括号了。

2022-09-06 19:43:42 1618

原创 力扣85、最大矩形

定义一个heights[]数组来存储每一行中的数据,如果在这一行中遇到了matrix[i][j]为1的话,heights[j]++,否则的话,将heights[j]置为0。

2022-09-05 18:01:43 163

原创 力扣503、下一个更大元素 II

例子如上图所示,注释写在代码中,下面再附一力扣大佬的动图加上注释,就可以完美的通过该题!

2022-09-03 00:08:36 145

原创 力扣84、柱状图中最大的矩形

在算法这条路上还是任重道远啊!

2022-09-02 17:51:29 181

原创 leetcode15、三数之和

由上图中例一可以得出,如果给出的数组是[-1,0,1,2,-1,-4]这个,其中有两个-1,那么正确答案就可以是[-1,0,1],[-1,0,1],[-1,-1,2]其中前俩个数组答案一样,因为有重复的-1,所以答案得去重,去重之后对得到的合适的答案进行填入,下面进行代码填充,思路会写入到代码注释中。...

2022-09-01 11:45:48 100

原创 力扣、498: 对角线遍历

总结:在这道题中我们根据对角线遍历的规则,可以按照其二维坐标的变化来分别列出右上遍历和左下遍历的规律 ,再将每次遍历的都存入vector中,最后return返回这个vector就好。首先看上图可以得出它的遍历顺序,第一趟往右上方向,第二趟往左下方向,第三趟又和第一趟的遍历方向一样为右上,第四趟方向又和第二趟一样为左下方向.........规律以此类推。...

2022-08-31 00:52:00 122

原创 力扣11、. 盛最多水的容器

最简单的短板效应 可以盛多少取决于最短板的长度。

2022-08-30 18:45:40 74

原创 力扣03:无重复字符的最长子串(哈希解法)

该题还有一种解法就是两层for循环套着 ,也就是暴力求解,所耗费时间较长,没有什么实际的意义,在此就不说了.今天第二次写这个题,竟然在哈希那块给卡住了,写个博客记录一下.

2022-08-25 00:13:42 82

原创 jsoncpp-src-0.5.0.tar.gz免费下载资源(GitHub下载)

该链接打开即可下载标题所示资源 打不开可私聊我,我私发您网盘链接。

2022-08-13 11:47:25 458

原创 剑指offer:面试题17--->打印1到n位数(思路解析在代码注释)

先来读懂这道题的意思: 下面思路都在代码注释中:上述这种方法会有一个问题,num值类型为int整型,所以它的取值范围为21亿多,当n的取值大于9时,他将越界,所以下面再说一种方法来扩大范围。代码实现:上述函数中Print_num函数的实现:下面函数比较简单 就不多说了...

2022-08-11 00:47:37 94

原创 【LeetCode】344、反转字符串

我们同学去深信服笔试时,考了这个算法代码,所给的要求是三分钟之内写出这个程序题目如上所示,主流解题方法有三种:1.这种方法应该算是普普通通的那种,左下标left++,右下标right--,然后循环中使用swap交换函数来进行换位。class Solution {public: void reverseString(vector<char>& s) { int n = s.size(); for (int left = 0, ri.

2022-04-22 16:54:19 150

原创 【C++】单例模式(懒汉、饿汉)

1.什么是单例模式?顾名思义,单例模式就是在这个单例类确保只有一个对象被创建。也就是说这个类只能实例化一个对象。特征:1.单例类最多只能有一个实例; 2.单例类必须自己创建自己唯一的实例; 3.单例类必须给所有其他的对象提供这一实例。2.为什么要有单例模式?首先,单例模式中某一类只能实例化一个对象,然后该类提供了一个全局都可以访问的实例化静态对象,以此来应对程序中某些频繁销毁构建的全局类优点:1.内存中该类只实例化了一个对象,减少了内存的消耗;2.避免资源的重复占用缺点:单例类的话,

2022-04-16 19:38:26 4087

原创 【C++】模拟实现多线程中的信号量

二元信号量和一般信号量二元信号量是最简单的一种锁,适合那种被唯一线程访问的资源,而一般信号量就允许多线程并发的访问资源。二元信号量类似于互斥量,但是有一点不同的是,互斥量只能被上锁的那个线程释放,通俗的说就是,哪个线程对互斥量加的锁,就由哪个线程来劲释放。下面来举例证明上述言论,下面来个简单的生产者消费者的例子,拿二元信号量来实现:上述生产者和消费者分别有两个不同定义的信号量初值,生产者的信号量初值为1,消费者信号量初值为0,acquire方法是对信号量减一,release方法是对信号.

2022-04-13 17:01:16 525

原创 堆排序(超详细的原理图以及代码注释)

在了解学习堆排序之前,我们必须清楚以下的概念:上述概念搞清楚之后,来看下面的原理图:然后原理部分就讲完了下面来看如何由子节点下标推出父节点和父节点下标推出子节点下标下面这个原理图来展现一下为什么在调整大顶堆的时候 要将下标给到len-1最大值所有的前期任务完成了之后,下面进行代码实现://该函数是用来调整大顶堆的void AdjustHeap(int* arr, int start, int end){ int tmp = arr[start]; int i..

2022-03-25 18:43:22 688

原创 如何用两个栈实现一个队列?

先看分析来看代码,因为代码量巨大,其中包括两个头文件,两个实现函数 , 这块就写一个两个栈实现按一个队列的头文件以及函数名,填补代码不难的,有需要的话,我在评论区发出来:这部分资源我已经在我主页资源那块上传 有需要直接去下载即可:two_stack_to_queue:#pragma once#include "stack.h" //这是栈的头函数 typedef struct TSTqueue{ Stack s1; Stack s2;}TSTqueue, *PT..

2022-03-24 14:13:55 117

原创 基数排序(桶排序)

基数排序又叫桶排序:先按照个位数排序,第一次排序好之后;再次按照十位数进行排序,第二次排序好之后;第三次对百位进行排序..................实现原理图:拿出一些个类似“桶”的东西 将分别按照个位,十位,百位排序好的放到这些“桶”中,然后按照从小到大,从上到下的规则开始取值排序的次数是该数组中位数最多的元素来决定的 例如下图中排序三次,最高位数是百 相同道理,如果位数最多元素是千的话,那就得排序四次!如上所示,排序三次之后就完成了该数组的排序!每个桶大家...

2022-03-23 16:45:16 261

原创 【C++】多线程(链式、循环队列)实现生产者消费者模式

链式队列和双循环队列实现多线程的生产者和消费者模式

2022-03-22 11:30:45 6258 2

原创 【C++】满二叉树、完全二叉树等概念解释

二叉树中的判断有以下几种:是否完全二叉树、是否满二叉树、是否为BST树、是否为平衡二叉树、是否为对称二叉树、完美二叉树满二叉树:除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树。上述所示图除最外一层节点之外,每个节点都有两个子节点,所以上述两图都是满二叉树!!!完全二叉树:完全二叉树是满二叉树的一直特例,怎么个特例法呢?上图为啥有些是完全二叉树,有些又不是完全二叉树呢?完全二叉树定义:完全二叉树(Complete Binar...

2022-03-21 12:00:41 1731

原创 【C++】四种类型的转换

C++四种类型的转换包括这四种:const_cast , static_cast , dynamic_cast , reinterpret_cast先来说下C语言中的类型转换,非常的暴力,就是耍流氓:float a = 12.23;int b = (int)a;下面我写的都是最基础的,简单的,下面这篇文章写的很详细,我还刚学这东西,就只是写一下我自己的理解:c++ 四种强制类型转换介绍_ydar95的博客-CSDN博客_c++指针类型强转c++ 四种强制类型转换介绍const_c

2022-03-20 19:17:56 261

原创 【C++】菱形继承

我们先来看下菱形继承的基本视图以及基本的代码结构下面来看下简单的代码以及数据结构:class Person{public: int a_p;};class Studen :public Person{public: int a_st;};class Stuff :public Person{public: int a_sf;};class st_sf :public Stuff, public Studen{public: int a_ss;};

2022-03-19 20:24:04 593

原创 【C++】二叉树的先序、中序、后序遍历序列

二叉树常用到的遍历有这三种先序遍历:先遍历根节点,然后再分别遍历左节点和右节点。(根左右)中序遍历:先遍历左节点,然后再遍历根节点,最后遍历右节点。(左根右)后序遍历:先遍历左节点,然后再遍历右节点,最后遍历根节点。(左右根)如下图所示:按照中序遍历的打印顺序为:D B E A F C G按照先序遍历的打印顺序为:A B D E C F G按照后序遍历的打印顺序为:D E B  F  G  C  A我们先来看一下关于二叉树的创建:先来看关于二叉树中指针的指向的创建

2022-03-18 22:13:01 8316 2

原创 【C++】多线程互斥锁、条件变量

我们了解互斥量和条件变量之前,我们先来看一下为什么要有互斥量和条件变量这两个东西,了解为什么有这两东西之后,理解起来后面的东西就简单很多了!!!先来看下面这段简单的代码:...

2022-03-17 16:57:26 1002

原创 【C++】多线程thread

进程和线程的区别:进程是资源分配的最小单位,线程是CPU调度的最小单位 进程有自己的独立地址空间,线程共享进程中的地址空间 进程的创建消耗资源大,线程的创建相对较小进程的切换开销大,线程的切换开销相对较小 进程:程序执行的过程叫进程。线程:进程内部的一条执行序列或执行路径,一个进程可以包含多条线程(多线程)!每个进程最少有一个线程,例如下面代码:#include <iostream>using namespace std; int main(){

2022-03-16 17:58:39 1290

原创 【C++】多态(早期绑定、后期绑定)、抽象类(纯虚函数)、虚析构函数

我们都知道面向对象编程的三大特征是封装、继承、多态,今天我们就来说一下其中之一的多态。概念:多态:多态字面意思就是多种形态,C++ 多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。多态分类:多态分为编译时多态(早期绑定)和运行时多态(后期绑定)...

2022-03-15 12:55:11 1074

原创 【C++】虚函数

虚函数是构成C++多态的重要一步,今天来说一下虚函数!虚函数:在基类(或父类)中,使用virtual关键字对函数进行声明为并在一个或多个派生类(子类)中被重新定义的成员函数,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。它的用法是这样的:virtual + 函数返回类型 + 函数名 +(参数表) {函数体}首先我们要知道为什么要有虚函数这个东西?我来看下下面这两段代码的结果再来说结果:class A{public: void fun() { cout

2022-03-14 11:20:31 860

原创 【C++】继承

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类(子类),被继承的类称为基类(父类,现在还有一种叫法交超类)。继承呈现了面向对象程序设计的层次结构。体现了由简单到复杂的认识过程。继承的方式有三种:公有继承,私有继承,保护继承,那么这三种继承方式有什么不同呢?无论是私有继承,公有继承,还是保护继承,在对于派生类的成员函数来说的话,只有在基类的private的成员变量在派生类中是不可

2022-02-20 22:17:39 285

原创 【C++】typedfe和宏定义的区别

先来说结论

2022-02-19 00:00:17 967 1

原创 【C++】左值、右值、移动拷贝构造函数、移动赋值函数

左值和右值的定义以及区别:

2022-02-16 06:00:00 816

jsoncpp-src-0.5.0.tar.gz(免费资源,如若收费,私聊我即可)

jsoncpp-src-0.5.0.tar.gz(免费资源,如若收费,私聊我即可)

2022-08-13

重新设计头节点的链式队列程序设计 lqueue.cpp

队列的特点:          头删和尾插         这样下来的时间复杂度都是o(1)

2021-10-14

这种IP应该怎么算,说下思路即可

2022-11-11

关于#c++#的问题:这个应该按照怎么个思路来写:想老半天莫得思路想法

2022-10-20

力扣1048题解中lamda表达式

2022-09-05

关于#c++#的问题:stk 而stk为空栈 那么下图中圈住的stk.top以及stk.pop这些操作有什么意义

2022-08-26

这里的auto是代表什么意思

2022-08-24

在Ubuntu中编译C++时提示如下错误:

2022-08-13

md5算法加密后的字符串长度为啥是固定的16字节

2022-05-26

关于未定义局部变量的使用

2022-04-07

C语言这行代码为什么可以通过?

2022-03-20

【C++】中缺省的线程构造函数构造出的是什么东西

2022-03-16

【C语言】这个代码属实给我整不会了

2022-03-15

【C++】基类中的析构函数声明为虚函数,为什么派生类中的析构函数不需要重新为虚函数也可以定义被调用

2022-03-15

【C++】迭代器所遇到的问题

2022-02-19

【C++】为啥会内存泄露

2022-02-18

【C++】为什么这里会调用移动构造函数

2022-02-12

C++中<<运算符重载中的问题

2022-02-11

C++重载中的cout重载ostream &out是什么意思

2022-02-11

C++类中重载等于号的问题

2022-01-28

哪个是高地址哪个是低地址?

2022-01-28

C++中这句话什么意思

2022-01-24

C++三目运算符(这个应该是三目运算符)

2022-01-23

C++中的这行代码什么意思?

2022-01-22

这句汇编语言什么意思?

2022-01-14

C++关于const的问题

2022-01-09

TCP协议中time_wait存在的意义的理解

2022-01-07

C++中的 << 在下面的场景中什么意思?

2021-12-05

Linux多线程,实在是不能理解啊

2021-11-21

Linux进程替换中的(char*)0是什么意思

2021-10-23

打印小端存储如何改为打印大端存储

2021-10-16

arr[j] = arr[j] + arr[j - 1];这行代码在一维数组的杨辉三角中怎么执行的

2021-10-13

arr[j] = arr[j] + arr[j - 1];这行代码在杨辉三角中怎么跑的

2021-10-13

帮】帮【忙大【佬 们,小 弟在此跪 谢了

2021-07-20

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

TA关注的人

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