自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 收藏
  • 关注

原创 【Linux从青铜到王者】tcp协议2

滑动窗口+拥塞控制,tcp的核心!!!

2024-07-29 16:29:51 641

原创 【Linux从青铜到王者】关于tcp协议你不知道的事

首先我们应该知道协议=统一规定的的结构化字段序列化就是将结构化字段里的数据转换成字节流反序列化就是将字节流里的数据放进结构化字段只要协议定好了,序列化和反序列化也就很相对轻松了,不同设备之间就可以通过字节流传输数据了,不再使用传结构体这种受平台和语言限制的方法了报文=报头+有效载荷很多教材画图的时候都是只标个数据或者ACK,其实每次传递的都是一个完整的报文(只是可能没有有效载荷罢了)tcp报头如下所示tcp的特性(关于加粗部分都是需要我们重点去体会 的)tcp是面向字节流的tcp是具有可靠性。

2024-07-29 15:33:27 713

原创 【Linux从青铜到王者】多线程1(笔记版)

pthread库里所谓的线程其实是对系统里的lwp进行了封装,将线程封装成由三个部分(struct_phthread(lwp),线程局部存储(上下文资源),线程栈)组成的结构体。申请锁取决于线程的竞争能力,如果一个竞争能力特别强的线程刚释放锁,又申请到锁继续访问资源,如此循环就会导致其他线程无法申请到锁,导致饥饿问题。执行main函数的为主线程,主线程用的栈是虚拟地址空间里的栈,其他线程的栈都在线程库里被开辟并管理。一个进程不管有多少个线程,每个线程的tgid都是一样的,每个线程的pid都是不同的。

2024-04-19 17:42:50 817

原创 【优选算法】前缀和

前缀和思想其实就是一种简单的dp思想,也就是动态规划什么时候用到前缀和?当要快速求出数组中某一个区间的和。

2024-03-04 21:05:49 1007

原创 【Linux从青铜到王者】进程信号

庖丁解牛般带你分三步全面理解进程信号!!!

2024-03-04 20:18:21 748

原创 【优选算法】简单却又恶心的二分

简单却又恶心的二分,看完后百分百不死循环!

2024-02-26 16:29:43 1028

原创 【Linux从青铜到王者】 基础IO

之前我们学习过c语言的文件操作,但那是语言级别的。由之前所学知道中间肯定需要操作系统参与,所以c语言的文件操作必定封装了系统调用。

2024-02-22 21:36:38 2544

原创 【c++】继承与多态

继承和多态!

2023-10-30 16:00:09 140

原创 【Linux】命令行参数和环境变量

3.通过。

2023-10-22 11:18:34 219

原创 【C++】手撕STL系列——stack,queue篇

stack和queue的自我实现——感悟何为适配器!!!

2023-10-16 23:23:47 228 1

原创 【Linux】进程

在了解进程概念之前,还有很多东西需要我们先了解,以助我们更好地学习以后的知识大部分都是概念的东西,大部分大概有个印象就好了。

2023-10-13 16:44:37 209

原创 【C++】手撕STL系列——string篇

小白自我实现string类!

2023-10-11 23:43:16 416

原创 【Linux】粗谈权限

以上为Linux权限的粗略总结,也以此篇开始Linux的学习,该系列会持续更新,希望各位多多支持,如有错误也希望及时指出!

2023-09-10 15:45:14 185 1

原创 泛型编程| 模板初阶——懒人福音!

懒人创造世界!!!泛型编程 | 模板初阶

2023-08-13 20:23:43 197

原创 【c++】七夕快到了却还没对象?手把手教你new一个出来!

本章给大家带来的是C++内存管理。在C语言阶段,我们经常使用malloc,calloc,realloc,free进行内存管理。但是,C语言的内存管理存在很多缺陷,会对程序的稳定性和安全性造成影响。不过,C语言的内存管理同时也给程序员提供了更大的自由度和灵活性,可以更加精细地控制程序的内存使用。而C++有他自己的一套内存管理,就是:new和delete。

2023-08-13 17:28:27 155

原创 【C++】类和对象

小白七千字详解类和对象!!!

2023-08-03 21:40:25 250

原创 【C++】入门基础2

c++入门基础2!!!

2023-07-25 12:21:53 144

原创 【C++】入门基础知识

c过渡到c++基础知识~

2023-07-19 11:44:45 278

原创 【刷题之路】单调栈秒解每日温度

单调栈秒解每日温度!!!冲冲冲

2023-06-02 20:56:26 243

原创 树的简单介绍

😎本篇就是简单简单介绍树,并不是很详细,希望对大家能有所帮助!

2023-05-28 20:51:58 693 2

原创 【数据结构】堆堆堆堆堆!

万字+动图详解堆!!!以及你应该了解的堆排序和topk问题以及相关原理!!!

2023-05-22 22:22:03 715 6

原创 【刷题之路】LeetCode232——用栈实现队列

竟然可以用栈实现队列?!!

2023-05-19 11:32:41 386

原创 【数据结构】队列及其实现

小白手把手教你实现队列!!!

2023-05-16 13:56:47 977 9

原创 【数据结构】栈及其实现

手把手教你栈的实现!!!附完整代码哦

2023-05-15 11:10:48 749 14

原创 单链表你别再找我了,我怕双向链表误会

单链表你别再找我了,我怕双向链表误会

2023-05-12 10:14:38 637 4

原创 【刷题之路】LeetCode24——详解两两交换链表中的结点的细节

总的来说这道题不算很难,但十分考验我们对链表的基础操作,以及对哨兵位的使用,相信对每个人都会有所帮助。希望大家多多支持,我也会继续输出我的编程知识的!

2023-05-08 21:43:44 292 9

原创 经典链表问题——判断链表是否带环

如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递。仅仅是为了标识链表的实际情况。

2023-05-06 15:17:45 1369 5

原创 单链表|附完整源码—c语言版

我们都知道数组在内存中是连续存储的,顺序表就是由链表存储的,它有一个其他数据结构都没有的优点——支持随机访问(就是利用下标访问元素),这可以让其支持一些排序算法的操作。但是顺序表也有一些如下缺点:1. 中间/头部的插入删除,时间复杂度为O(N)2. 增容需要申请新空间,拷贝数据,释放旧空间。会有不小的消耗。3. 增容一般是呈2倍的增长,势必会有一定的空间浪费。例如当前容量为100,满了以后增容到200,我们再继续插入了5个数据,后面没有数据插入了,那么就浪费了95个数据空间。

2023-04-20 16:55:12 465

原创 LeetCode面试题 01.01. 判定字符是否唯一

把字符串中每个字符转化为一个二进制数,转化方法为1向左N位的位运算,N为这个字符和字符‘a'的距离;例如 Na = 0,Nb=1,Nc = 2...a = 1

2023-04-15 20:50:27 180 4

原创 【刷题之路】LeetCode63——不同路径ⅠⅠ

输入:obstacleGrid = [[0,0,0],[0,1,0],[0,0,0]]输出:2解释:3x3 网格的正中间有一个障碍物。从左上角到右下角一共有 2 条不同的路径:1. 向右 -> 向右 -> 向下 -> 向下2. 向下 -> 向下 -> 向右 -> 向右。

2023-04-09 14:07:26 369 2

原创 【刷题之路】LeetCode62——不同路径Ⅰ

4.遍历顺序:由递推公式dp[i][j]=dp[i-1][j]+dp[i][j-1]可得我们从左往右,从上往下遍历。希望大家别小看遍历顺序这一步骤,有的动态规划题目的遍历顺序是从后往前的,也有很特殊的,只是本题的遍历顺序是比较符合大家主观印象的,切记不是每个题都是从前往后,从上往下进行遍历的。如果这样想那就是对dp数组的含义不明确了,dp[i-1][j]是(0,0)到坐标(i-1,j)有多少种不同路径,那我在坐标(i-1,j)再往下走一步,还是一样多的路径(为dp[i-1][j])。时间复杂度:O(mn)

2023-04-09 13:47:58 226 1

原创 LeetCode11—盛最多水的容器——双指针的妙用

本题又是一道很经典的双指针问题,不过是从两端开始的双指针,也是很常见的,希望大家能有所收获。再你感觉已经完全了解双指针的时候,不妨再来道题练练手,检验检验?

2023-04-02 21:35:22 136 3

原创 LeetCode209——长度最小的子数组

滑动区间这种解法你粗略一看好像和暴力解法的代码很相像,但是当你仔细剖析,会发现时间复杂度小了很多,这也是它的神奇之处。希望大家能够仔细揣摩,这种题还是挺常见的。也希望我的分享对大家都能有所收获,那将是我的荣幸!

2023-03-31 14:03:35 114 6

原创 LeetCode27 移除数组元素——双指针法实现原地移除

遇到不等于val的元素就将其赋值给新数组arr【slow】,然后slow++,直到遍历完原本的数组,新数组也完成了,我们也就实现了原地移除。思路2:虽然思路1可以完成,但是达不到题目的原地移除的要求,不过我们可以模仿思路1进行改造——如果那个新的数组就是原数组本身呢?这里有一点需要注意,这里的修改并不是将等于val的值改为0,这样子并不算移除,而是要用后面的不等于val的元素将其覆盖。以上的方法就是双指针法,要体会到双指针法的妙用,其在刷题的过程中双指针还是十分常见的,我们必须将其牢牢把握。

2023-03-28 16:13:25 120

原创 深度剖析动态内存

速通c语言动态内存函数!

2023-03-27 20:27:53 101 2

原创 关于二分查找你不知道的事!

对于mid-1的大小我们并不明确,区间右边又是开的,是不包含的,那么下一个区间它就不在判断范围内,大家想想这合理吗?如果我们选择right=mid,mid的大小我们知道,右区间是开的,mid此时不在下一个区间判断范围内,大小未知的mid-1在,这就十分合理。我们举个例子,当a=b=1的时候,区间为[1,1],显然在数学上这是成立的。因为mid>val,此时的mid显然不需要在下一个区间进行比较了,我们知道mid是大于val的,而且区间是左闭右闭,此时选择right=mid就是不合理的,多余的操作。

2023-03-22 00:24:42 154 3

原创 玩转qsort——c语言

手把手教会你qsort函数和用冒泡排序实现一个自己的my-qsort!(详细思路)

2023-03-21 22:57:32 137 3

原创 有趣编程题之判断第一名和凶手

然后就是题目所说的每位选手都说了一半,不知道大家是否还记得c语言里的条件判断,如果为假那就是0,如果为真那就是1。所以我们可以利用条件判断,每个人说的值都为1就break跳出循环,然后再利用5*4*3*2*1=120也就是A*B*C*D*E为120筛选出重复的情况,最后把每个人的成绩打印出来就完成啦。这两道题都很好地锻炼了我们将实际问题转化为代码的能力,弄懂了第一道,第二道也就顺理成章的有思路了,我们先来看第一道吧!

2023-03-20 17:41:28 128

原创 剑指offer24——双指针&&递归法解决链表翻转(带图讲解)

struct ListNode*tmp保存cur的下一个结点的位置,然后再进行cur->next(箭头)的修改,接着让prev来到cur的位置,cur来到tmp的位置,这样就完成一次翻转了。

2023-03-20 16:22:52 274

原创 详解c自定义类型——结构体,枚举

前言: 我们都知道,c的常见数据类型有很多,例如char,int,short,long,double,float等等,但是当我们想存储一个人的信息的时候,好像上面没有一个类型可以实现。为了不那么死板以及增加我们的可操作性和灵活性,这时就需要我们的结构体struct出场了。 结构体的声明与匿名结构体首先我们要知道,结构体和int,char一样,是一种变量类型。我们先来看例子我们定义一个结构体类型struct stu来表示一个学

2023-03-18 16:02:32 232 5

空空如也

空空如也

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

TA关注的人

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