- 博客(29)
- 收藏
- 关注
原创 deque容器
目录一、deque—定义 二、deque—内部工作原理 三、deque—构造函数 四、deque—赋值操作 五、deque—大小操作六、deque—插入和删除 七、deque—数据存取 八、deque—排序
2022-12-13 15:38:58
248
原创 线性表——循环链表、双向链表
目录一、循环链表1、定义和特点 2、初始化循环链表 3、求循环链表的长度4、遍历循环链表找到值为x的结点个数(重点在于遍历操作)5、循环链表的典型应用——约瑟夫环 二、双向链表1、定义和特点 2、双向链表的类型声明3、求双向循环链表的长度 4、双向循环链表插入算法5、双向循环链表删除结点算法 注:以下算法中循环链表的节点声明同单链表 3、求循环链表的长度4、遍历循环链表找到值为x的结点个数(重点在于遍历操作)5、循环链表的典型应用——约瑟夫环 题解代码:运行结果
2022-12-07 20:18:52
719
原创 线性表——链式存储
目录 1、基础概念和特点 2、结点类型的声明3、初始化单链表4、销毁单链表 5、求单链表长度 6、求单链表中值为e的元素7、单链表的插入8、 单链表的删除注:以下操作均是对有头结点的单链表的操作 4、销毁单链表 5、求单链表长度 6、求单链表中值为e的元素7、单链表的插入8、 单链表的删除
2022-12-06 22:35:26
276
原创 Leetcode 19. 删除链表的倒数第N个结点
思路:这道题是双指针法的经典应用,如果要删除倒数第n个结点,让 fast(快指针)先移动n步,然后让 fast 和 slow 同时移动,直到 fast 指向链表尾,这样 slow 就指向了倒数第n个结点,再将其删掉即可。2.fast 先走n+1步(这里非常关键),这样在同时移动后,last 就指向了第 n-1 个结点(即目标删除结点的上一个结点),这样更加方便删除操作。1.建议使用虚拟头结点,让 fast 和 slow 的初值指向虚拟头结点,这样更加方便操作。
2022-11-11 22:19:22
104
转载 刷题——数组篇总结
双指针法(快慢指针法):主要通过一个快指针和一个慢指针在一个for循环下完成两个for循环的工作,快指针遍历数组,慢指针保存需要的元素。滑动窗口的思想,主要明确窗口的内容是什么,窗口通过起始位置的变换,达到动态更新窗口大小的效果,从而得出最小的符合条件的长度。这一类的题目在数组中也比较常见,不涉及什么算法,就是单纯的模拟,十分考察对代码的掌控能力,同时这一题中叶体现了循环不变量原则。数组是非常基础的数据结构,考察数组的题目一般在思维上都不难,主要考察对代码的掌控能力。滑动窗口的时间复杂度也是O(n)。
2022-11-08 09:48:09
91
原创 Leetcode 209. 长度最小的子数组
在本题中,窗口内即满足和 ≥ target 的长度最小的连续子序列;当窗口内的连续子序列的和大于 target 时,就要将窗口的起始位置向前移动(即移动窗口);而窗口的结束位置即为遍历窗口的指针,通过起始和结束位置的变化即实现了窗口的滑动。1.暴力法 (复制的官方题解,但却提交超时)2.滑动窗口(也可以看作双指针的一种)(2)如何移动窗口的起始位置?(3)如何移动窗口的结束位置?(1)窗口内是什么?
2022-11-07 17:28:02
201
原创 Leetcode 27. 移除元素
设置 slow 和 fast 两个指针,fast 用来实现 for 循环遍历数组元素,slow 用来记录要保存的元素。要注意的点是在移除元素时的 i-- 和 numsSize-- 操作。
2022-11-06 00:54:20
112
原创 SQL——DQL
一、概念DQL 英文全称是 Data Query Language(数据查询语言),用来查询数据库表中的记录。DQL-语法框架:select 字段列表from 表名列表where 条件列表group by 分组字段列表having 分组后条件列表order by 排序字段列表l......
2022-08-14 16:40:25
346
原创 虚函数与多态
一、概念1.多态定义:多态是对程序通用性的追求,同一名称实现不同的功能,达到行为标识同一。2.多态的实现:编译时(静态)的多态:通过函数重载和运算符重载实现 这种多态是静态的运行时(动态)的多态 :通过类继承关系和虚函数实现 这种多态是动态的 程序执行前,无法根据函数名和参数来确定该调用哪一个函数 在执行过程中,根据执行的具体情况来动态地确定二、虚函数1.虚函数定义:虚函数必须是类的成员函数,使用关键字virtual说明2.定义格式:virtual 返.
2022-08-14 16:34:52
217
原创 浅入深度学习
一、若干概念在正式介绍前馈神经网络前,先介绍神经元、激活函数、输出单元及损失函数的一些基本概念。1.神经元在生物学中,神经元细胞有兴奋与抑制两种状态。大多数神经元细胞在正常情况下处于抑制状态,一旦某个神经元受到刺激并且电位超过一定的阈值后,这个神经元细胞就被激活,处于兴奋状态,并向其他神经元传递信息。基于神经元细胞的结构特性与信息传递方式,神经科学家Warren McCulloch 和逻辑学家 Walter Pitts 合作提出了“McCulloch-Pitts(MCP)neur...
2022-05-30 21:50:16
370
原创 7.3 同名覆盖与类型兼容(标识符二义性)
目录一、同名覆盖1.定义:2.前提条件:3.示例:编辑二、类型兼容1.定义:2.实现方法:3.示例 :三、比较一、同名覆盖1.定义:在派生类中添加新的函数成员时,使用和基类函数成员相同的姓名和参数表。则在使用派生类对象时,默认访问同名的新成员。注意:这里的前提条件是正常使用派生类时2.前提条件:3.示例:二、类型兼容1.定义:在任何需要基类对象的地方都可以使用共有派生类对象来代替,称为类型兼容,但反之则禁止。..
2022-05-14 16:38:12
208
原创 7.2 派生类的构造和析构函数
目录1、派生类构造函数的定义2、派生类构造函数的执行顺序3、派生类构造函数示例4、运行结果5、派生类的析构函数6、继承VS组合1、派生类构造函数的定义1.派生类继承了基类的数据成员2.派生类构造函数的形参表不但要包含对派生数据成员初始化的参数,还要包含对基类数据成员初始化的参数3.派生类构造函数要明确指出分配给基类的参数派生类名::派生类名(基类所需的形参, 本类新成员所需的形参):基类名1(参数表1),基类名2(参数表2)......{
2022-05-14 14:25:10
1498
原创 7.1 类的继承与派生
一、概述封装:现实世界中的联系将数据与数据的处理函数结合在一起,隐藏数据,数据的访问只能通过类的共有函数。继承:持续发展的开放的编程态度新的类在不破坏类的封装的特性的情况下得到了原有类的功能,并依据新的需求添加新的数据和成员。多态:对程序通用性的追求同一名称实现不同的功能,达到行为标识统一。二、基本概念继承:保持已有类的特性,而构造新类的过程称为继承。 派生:在已有类的基础上新增自己的特性,而产生新类的过程称为派生。 被继承的类称为基类或父类 派生出的
2022-05-14 12:25:13
228
原创 5.4 类的友元
1、概述友元关系提供了不同类或对象的成员函数之间,类的成员函数与一般函数之间进行数据共享的机制。 通俗的说,友元关系就是一个类主动声明哪些其他类或函数进而给它们提供了对本类的特许访问(访问封装于本类的数据)。2、友元函数友元函数是类中用关键字friend修饰的非成员函数。友元函数可以是一个普通函数,也可以是其他类的成员函数。虽然它.的成员函数,但是在它的函数体中可以通过对象名访问本类的私有和保护成员。3、友元函数-实例(计算两点间的距离)Point类的定义,dist函数声.
2022-05-04 16:16:29
312
原创 5.3 类的静态成员
目录1、定义-静态数据成员2、定义-静态函数成员3、静态数据成员、静态函数成员-实例(借书卡类)4、总结1、定义-静态数据成员类的所有对象共同拥有的一个数据成员 使用储存类型关键字"static"在类体内声明 在类体外定义或者初始化由于静态数据成员不属于任何对象,那么对象创建时就不会为他分配存储空间。为此,静态数据成员在类体内声明后,必须在类体外定义或者初始化,才能完成在全局数据去的存储分配。2、定义-静态函数成员如果需要在对象创建之前操作静态数据成员,只
2022-04-29 23:29:07
100
原创 4.4 类的组合
目录1、定义2、组合类的构造函数3、组合构造函数示例4、运行结果1、定义类的组合描述的就是一个类内嵌其他类的对象作为成员的情况,他们之间的关系是一种包含与被包含的关系。2、组合类的构造函数在这里,组合类的数据成员包含:对象成员 本类的其他数据成员对象的创建顺序(由小及大):先创建对象成员:调用对象成员类的构造函数。 再创建组合类的对象:执行组合类的构造函数。注意:对于对象成员的初始化,使用了初始化列表。初始化列表调用了对象成员类的构造
2022-04-29 22:23:14
191
原创 4.3.2 复制构造函数
目录1、定义2、语法形式3、特性4、复制构造函数调用的三种情况5、实例展示(Point 类的复制构造函数)6、运行结果1、定义对象创建时,用同类对象来初始化新对象,这种对象创建方式所调用的构造函数称为复制构造函数(Copy Constructor)。2、语法形式类名(const 类名 &对象名); //const 可以不写,其形参是本类对象的引用。3、特性复制构造函数是一种特殊的构造函数,其具有一般构造函数的所有特性。当用户没..
2022-04-28 15:42:08
179
原创 SQL——DDL
一、概述DDL数据库操作:查询查询所有数据库show databases; //SQL语句不区分大小写,以分号结尾。查询当前数据库select database();删除drop database [if exists] 数据库名;创建create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];// []内的内容可以选择不写使用use 数据库名;...
2022-04-22 18:39:21
2565
原创 4.3.1 构造函数与析构函数
目录4.3.1 构造函数4.3.2 析构函数4.3.1 构造函数1.作用:构造函数的作用就是在对象被创建时利用特定的值构造对象,将对象初始化为一个特定的状态。2.性质:构造函数是类的public成员。 构造函数名与类名相同,即函数名为类名。 构造函数可以重载。 构造函数可以有任意类型的参数但没有返回值。 即函数头部没有返回值类型说明。/*复数类——构造函数示例*/class Complex{ int real, imag; publ...
2022-04-19 20:51:54
484
原创 二分查找的注意事项
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言 一、二分查找的主要注意细节 二、细节情况分析 1.左闭右闭区间 2.左闭右开区间 总结前言二分查找思想比较简单,重要的是在不同情况下对实现二分查找的细节处理一、二分查找需要注意的两个主要细节1.while 中的循环条件:left < right 还是 left <= right2.对于右侧边界的处理:right = middle 还是 right =mid..
2022-03-28 10:49:00
537
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人