自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dtxew love c++

用心写好每一篇博客

  • 博客(61)
  • 问答 (1)
  • 收藏
  • 关注

原创 c++类继承

继承是一种简化代码的手段之一,使代码可以实现复用。它允许在原来类的功能上进行扩展,衍生出新的功能。也可以把多个类的基本信息提取到某个类,减少代码的冗余。其中被继承的类通常叫做父类或基类,继承下来的类叫做子类或派生类。...

2022-07-25 22:15:09 4245 17

原创 单调栈的实现和应用

单调栈讲解问题引入假设我们这儿有一个数组arr我们现在想得到数组中任意一个数左边第一个比它小(或大)的下标位置和右边第一个比它小(或大)的下标位置的信息比如上面的数字6,左边第一个比它小的数字是2,对应下标位置是2右边第一个比它小的数字是1,对应下标位置4,所以能生成以下信息6:[2,4]而我们规定,左边或者右边没有比其小的数字的话,把答案设为-1而我们现在需要每个数字的对应信息,这种问题我们该怎么求解呢?很容易想到暴力方法,我们遍历每一个数字,然后把每个数字往左往右遍历一遍查找符合要

2022-03-19 17:32:52 967 17

原创 linux篇(四)linux进程(下)

作者介绍:关于作者:东条希尔薇,一名喜欢编程的在校大学生主攻方向:c++和linux码云主页点我作者CSDN主页地址目录环境变量问题引入环境变量定义环境变量的操作认识命令行参数并获取环境变量进程地址空间(重点警告)程序空间回顾进程地址空间OS这样设计的原因环境变量问题引入我们运行我们自己的c语言程序,是怎么运行的呢?我们发现,运行我们的程序必须要在前面加上./这其实是为OS标识程序所在的位置那么问题来了,为什么有些程序不需要这个东西?比如我们的python先甩出结论:因为有

2022-03-15 15:50:27 1393 5

原创 linux篇(四)linux进程(上)

作者介绍:关于作者:东条希尔薇,一名喜欢编程的在校大学生主攻方向:c++和linux码云主页点我作者CSDN主页地址目录认识操作系统感性的认识操作系统理性的认识操作系统初步认识OS的管理进程的认识PCB的基本数据说明查看进程PCB基本数据之标识符PCB基本数据之上下文数据利用fork来认识父子进程PCB基本数据之进程状态睡眠状态和运行状态特殊状态之僵尸状态特殊进程之孤儿进程PCB基本数据之优先级认识操作系统感性的认识操作系统我们的计算机,其实它的本质是由冯诺依曼结构为基础,由一个个硬件

2022-03-13 22:00:57 4895 9

原创 c++基础篇(五)STL(二)vector类的介绍及其模拟实现

重点:迭代器失效

2022-03-13 10:48:06 1703 4

原创 c++基础篇(四)STL(一)string类的介绍及其模拟实现

作者介绍:关于作者:东条希尔薇,一名喜欢编程的在校大学生主攻方向:c++和linux码云主页点我本系列仓库直通车作者CSDN主页地址从今天开始为大家介绍一下STL的相关使用及其模拟实现笔者认为,STL是c++的灵魂,有了STL和泛型编程,让c++编程更加的方便与实用。最重要的一点就是我们不用像c语言那样自己实现一遍数据结构和算法了而这个系列,我将采用**STL标准函数使用后面紧跟模拟实现的排版策略,**让大家的理解更加深刻目录STL简介string类简介string的构造与析构库函数中

2022-03-06 11:43:14 1135 2

原创 linux篇(三)linux开发工具的简单使用

2022-02-27 11:00:46 9333 3

原创 滑动窗口(最大最小值)的经典例题

滑动窗口简单概念滑动窗口是我们假想出的一种数据结构,我们在这篇文章实现的窗口,能较快速的求区间最大最小值在一些区间不回退的题目中运行效率也十分优秀设窗口的左边界为l,右边界为r,(规定l<=r恒成立)我们可以通过滑动右边界,从窗口的右边进入数字也可以通过滑动左边界,从窗口左边出数字滑动窗口求区间最大值(leetcode239)原题链接题目描述:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口

2022-02-23 22:39:18 3528 28

原创 c++基础篇(三)——模板初阶

作者介绍:关于作者:东条希尔薇,一名喜欢编程的在校大学生主攻方向:c++和linux码云主页点我本系列仓库直通车作者CSDN主页地址印刷术是中国四大发明之一,它极大地便利了古代人对于读书的需求。设想,如果我们没有印刷术的话,我们要传播书籍该怎么做?我们必须要把这本书亲自手抄几万份后传播,这样的传播方式不仅非常的繁琐,而且浪费了很多不必要的人力我们有印刷术就会方便许多,我们只需要抄一遍书上的内容,把它抄在一个模子上,然后使用这个模板,就能很轻松的把它复印几万份而我们今天讲的内容,和古代的

2022-02-23 11:09:58 1285 21

原创 一些经典的递归题

汉罗塔,字符串排列,反转栈等

2022-02-13 17:04:32 3829 32

原创 并查集实现及其应用

先看看度娘给出的定义吧:并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。这一类问题近几年来反复出现在信息学的国际国内赛题中。其特点是看似并不复杂,但数据量极大,若用正常的数据结构来描述的话,往往在空间上过大,计算机无法承受;即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果,只能用并查集来描述。总结一下:如果我

2022-02-10 13:14:28 1649 26

原创 力扣每日一题——NO.33——搜索旋转排序数组

原题链接题目描述整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nu

2022-02-04 21:33:17 292 8

原创 高精度运算(除法待完善)

我们知道,在c语言中,数据的存储是有范围的,超出了这个范围的数据将不能有效的进行存储和运算而超出c语言储存范围的数,不能用c语言基本数据类型储存的数据,就叫做大数所以,为了解决大数的运算问题,我们来介绍一下如何在c语言中实现大数运算大数加减法首先介绍最基本的大数加减法这篇文章中我们把任意小于200位的非负整数的数都称作大数例如:88888888888888888888,123456789987654321而我们要储存这么大的数字,只能用一个字符数组来储存char a[200]={0};

2022-02-01 18:31:43 2564 9

原创 前缀树的应用和实现(c++)

前缀树

2022-01-28 14:17:52 2034 24

原创 二叉树DP解题套路

帮助大家解决树形DP问题

2022-01-27 23:40:57 3198 33

原创 linux篇(二)权限

linux权限

2022-01-25 22:10:37 4748 52

原创 linux篇(一)linux快速上手

linux常用简单命令

2022-01-24 23:22:00 8456 62

原创 c++基础篇(二)——类与对象入门(下)

重点:初始化列表,友元

2022-01-20 22:57:34 887 26

原创 力扣每日一题——327.区间和的个数

原题链接题目描述给你一个整数数组 nums 以及两个整数 lower 和 upper 。求数组中,值位于范围 [lower, upper] (包含 lower 和 upper)之内的 区间和的个数 。区间和 S(i, j) 表示在 nums 中,位置从 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。例如:输入:nums = [-2,5,-1], lower = -2, upper = 2输出:3解释:存在三个区间:[0,0]、[2,2] 和 [0,2] ,对应的区间和分别

2022-01-17 21:27:00 1328 24

原创 c++基础篇(二)——类与对象入门(中)

重点,构造,析构,拷贝,预算符重载

2022-01-16 20:45:51 1001 32

原创 算法笔记——归并排序及其基础面试题

再谈归并排序在我以前的数据结构专栏中已经对归并排序做了介绍,这里我们开始先复习一下归并排序的思路与代码归并排序用到了分治的思想,将数组不断细分成小的几个区间,将每个区间排成有序后,再将大区间排为有序代码实现:(非递归实现)void _MergeSort(vector<int>&arr,int l,int m,int r);//归并操作的函数void MergeSort(vector<int>&arr){ int n=arr.size(); int

2022-01-16 12:18:03 1922 35

原创 c++基础篇(二)——类与对象入门(上)

帮助大家了解面向对象编程和类

2022-01-15 20:23:02 1108 32

原创 c++基础篇(一)——c++快速入门(下)

作者介绍:关于作者:东条希尔薇,一名喜欢编程的在校大学生主攻方向:c++和linux码云主页点我本系列仓库直通车作者CSDN主页地址本期重点,引用目录引用引用定义和表示引用的使用场景引用的特性引用和指针的对比常引用内联函数c++11新特性auto关键字范围for循环引用引用定义和表示首先,什么是引用?引用的本质是对一个变量取别名比如,你自己有一个大名,当然你肯定会有外号啥的(哈哈哈),你的外号就可以理解成这里的引用变量编译器对引用变量不会另外开空间,和被引用的变量共用

2022-01-14 22:19:55 1196 33

原创 力扣每日一题填坑系列——二叉树基础oj题合集

一些二叉树基础题

2022-01-03 15:27:29 6033 39

原创 c++基础篇(一)c++快速入门(extern c专题)

如何在c++的项目中使用c编译的库文件或者在c的项目中使用c++编译的库文件

2022-01-02 17:32:51 2108 40

原创 c++基础篇——(一)c++快速入门(上)

c++快速入门,涉及与c不同的地方,本文包含:命名空间,缺省参数,函数重载等

2021-12-01 17:17:55 4178 36

原创 初阶数据结构——经典排序算法

????????想快速入门数据结构,推荐订阅作者的初阶数据结构专栏!此专栏预计更新:顺序表,链表,栈,队列,二叉树,排序算法等等????????初阶数据结构我们通过c语言实现,所以此专栏也可以帮助大家巩固大家的c语言知识????????源代码已上传至我的码云前言非常感谢各位小伙伴的支持,我们的初阶数据结构系列在经过这篇文章后,也迎来了它的完结!这个系列我们使用纯c语言实现了一些简单的数据结构,用它们解决了一些简单的问题当年,可能有的小伙伴会问了:为啥作者没有收录图或者其它的数据结构啊

2021-11-20 11:10:51 5646 43

原创 力扣每日一题——NO.98——验证二叉搜索树

题目原代码和图解已上传至我的码云题目描述:给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。思路求解这里我们首先要了解一下什么是二叉搜索树,我刚拿到这个定义误以为只需要根结点的左结点小于当前结点和右结点大于当前结点就行了所以我第一次写出了以下的错误代码这是我脑中构思出的判断思路bool isValidB.

2021-11-12 18:47:26 1630 22

原创 力扣每日一题填坑系列——链表多题组合

目录回文链表复制带随机指针的链表两两交换链表中的结点回文链表题目链接题目描述给定一个链表的 头节点 head ,请判断其是否为回文链表。如果一个链表是回文,那么链表节点序列从前往后看和从后往前看是相同的。例如:[1,2,3,3,2,1]就是一个回文链表思路求解我们要解这道题,就要先抓住回文链表的特征它有什么特征?从后往前看和从前往后看相同也就是需要:前半段链表和后半段链表相同我们只需要:将后半段链表逆置,再依次与前半段链表比较即可至于怎么判断链表中点和逆置,已经在前面的博

2021-11-10 21:10:54 810

原创 初阶数据结构——二叉树

????????想快速入门数据结构,推荐订阅作者的初阶数据结构专栏!此专栏预计更新:顺序表,链表,栈,队列,二叉树,排序算法等等????????初阶数据结构我们通过c语言实现,所以此专栏也可以帮助大家巩固大家的c语言知识????????源代码已上传至我的码云前言我们在上篇文章中已经介绍了二叉树的相关性质及其应用,点我直达上一篇文章然而,在实际应用中,单纯地讲二叉树的增删查改是没有意义的因为存储和访问数据,将会变得特别的困难,因为二叉树是一种层次结构,需要递归来定义,在哪一点添加删除?这

2021-11-10 12:20:34 3078 47

原创 初阶数据结构——初识二叉树及其应用——堆——及其向下向上调整算法

????????想快速入门数据结构,推荐订阅作者的初阶数据结构专栏!此专栏预计更新:顺序表,链表,栈,队列,二叉树,排序算法等等????????初阶数据结构我们通过c语言实现,所以此专栏也可以帮助大家巩固大家的c语言知识????????源代码已上传至我的码云前言二叉树算是初阶数据结构的一个新坑吧,不仅仅是因为难度比前面的数据结构提升了一个档次,而且这也是我们学的第一种非线性结构我们在前面学的数据结构,无论是顺序表还是链表,不管它们在物理中的存储方式如何,它们的逻辑一定是串在一起的。但是

2021-11-05 16:53:02 2525 46

原创 力扣每日一题NO.622——循环队列

题目描述设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。Front: 从队首获取元素。如果队列

2021-11-02 11:38:33 315

原创 初阶数据结构——队列

????????想快速入门数据结构,推荐订阅作者的初阶数据结构专栏!此专栏预计更新:顺序表,链表,栈,队列,二叉树,排序算法等等????????初阶数据结构我们通过c语言实现,所以此专栏也可以帮助大家巩固大家的c语言知识????????源代码已上传至我的码云????????博主的微信公众号关注啦,关注我每天学习一道题,点我关注前言我们在前面已经学习了栈这种数据结构,已经了解了它是一种操作受限的线性表,其只能在栈顶进行插入与删除操作,遵循后进先出的规则而队列,与栈的本质差不多,都是操

2021-11-02 10:14:05 2269 54

原创 力扣每日一题——NO.142环形链表2

题目原代码和图解已上传至我的码云题目描述给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?思路求解这道题我们有两个思路去解决第一种思路我们在前面的文章中,已经讲.

2021-10-29 20:43:25 200 2

原创 初阶数据结构——栈

????????想快速入门数据结构,推荐订阅作者的初阶数据结构专栏!此专栏预计更新:顺序表,链表,栈,队列,二叉树,排序算法等等????????初阶数据结构我们通过c语言实现,所以此专栏也可以帮助大家巩固大家的c语言知识????????源代码已上传至我的码云????????博主的微信公众号关注啦,关注我每天学习一道题,点我关注知识引入其实栈这个概念,我们早在c语言阶段就了解过了。像啥函数栈帧呀,压栈啊啥的,我们都已经了解并掌握过了。我们今天实现的数据结构,也叫做栈,特征其实是跟函

2021-10-29 11:30:06 1075 12

原创 力扣每日一题NO.160.相交链表

题目原代码和图解已上传至我的码云题目描述:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。上图中我们就需要返回值为8的结点思路求解:首先我们需要检查它们到底相不相交,它们不相交的话就应该是这样最后两个链表都会遍历到NULL它们相交的时候,不管是什么情况,肯定会有:最后一个链表是相等的所以我们判断是否相交的时候可以用最后一个结点来判断如果不相等,就返回NULL。在寻找的时候,可能一般情况.

2021-10-28 15:29:38 331 5

原创 初阶数据结构——线性表——链表——带头双向循环链表

????????想快速入门数据结构,推荐订阅作者的初阶数据结构专栏!此专栏预计更新:顺序表,链表,栈,队列,二叉树,排序算法等等????????初阶数据结构我们通过c语言实现,所以此专栏也可以帮助大家巩固大家的c语言知识????????源代码已上传至我的码云????????博主的微信公众号关注啦,关注我每天学习一道题,点我关注前言其中在链表的实现中有很多种实现方法,主要取决于以下几个因素单向还是双向?循环还是不循环?带头还是不带头这几个特征两两组合,就可以看做一种链表的

2021-10-28 11:45:00 2994 27

原创 【重要】力扣每日一题.NO141.环形链表

画图讲解和源代码已上传至我的码云原题地址目录投票直通车题目描述给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。输入:head = [3,.

2021-10-25 21:51:36 274 10

原创 【1024狂欢】力扣经典链表OJ题合集

现在的力扣题的源代码我会全部一并上传至我的码云仓库里面,点我看仓库首先祝各位程序猿1024狂欢节快乐鸭!这是属于我们的节日为了致敬1024,今天的力扣系列不再是一题了,而是多个题的组合,帮助...

2021-10-24 20:37:49 4282 11

原创 算法笔记:摩尔投票法

问题引入:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。我们很轻松的想到暴力求解的方法:定义两个指针i和j,i记录该位置的数字,j向后遍历每遇到相等的数字就将计数器+1如果计数器大于了n/2,就停止,并返回此时的i但这种算法的时间复杂度较高,为O(n2),显然达不到题目的要求所以,为了将这道题的时间复杂度降到O(n),我们可以使用摩尔投票法算法简介摩尔投票法,是一个方便求众数的算法,其算法核心思想是:将数组中第一个元素记

2021-10-24 12:01:28 2449 29

空空如也

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

TA关注的人

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