自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 洋桃电子 STM32课程笔记

调试模式和计时器

2024-08-17 16:42:28 240

原创 2.C++中的引用

本笔记为观看后的学习笔记。

2024-08-07 06:55:36 371

原创 原型图绘制技巧

确定画布大小尺寸。

2024-08-06 11:14:15 332

原创 4.5类和对象——运算符重载

概念:对运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型作用:实现两个自定义数据类型相加的运算总结:左移运算符重载作用:可以输出自定义数据类型总结:重载左移运算符,配合友元,可以实现输出自定义数据类型。递增运算符重载作用:通过重载递增运算符,实现自己的整型数据总结:前置递增返回引用,后置递增返回值

2024-08-04 21:35:14 291

原创 5.C++文件操作

本笔记为观看后的学习笔记。程序运行时产生的数据都属于临时文件,程序一旦运行结束都会被释放通过。C++中对文件操作需要包含头文件-文件以文本的ASCII码形式存储在计算机中-文件以文本的形式存储在计算机中,用户一般不能直接读懂它们。

2024-08-04 21:22:23 617

原创 4.7类和对象——多态

多态使用时,如果子类中有属性开辟到堆区,那么父类指针在释放时无法调用到子类的析构代码。多态中,父类虚函数的实现没有什么意义,所以将虚函数改为 纯虚函数。子类必须重写抽象类中的纯虚函数,否则也属于抽象类。如果是纯虚析构,该类属于抽象类,无法实例化对象。virtual ~类名() = 0;解决方法:将父类中的析构函数改为。virtual ~类名(){}属于静态多态,复用函数名。抽象类:有纯虚函数的类。类名::~类名(){}多态案例一-计算器类。多态案例一-计算器类。多态案例二-制作饮品。

2024-08-04 16:29:37 296

原创 4.6类和对象——继承

本笔记为观看后的学习笔记。

2024-08-01 06:40:06 618

原创 4.4类和对象——友元

本笔记为观看C++黑马程序员后的学习笔记。背景:在程序里,有些私有属性 也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术目的:让一个函数或者类 访问另一个类中私有成员友元的关键字:friend。

2024-07-29 06:34:11 107

原创 4.3类和对象——对象模型和this指针

C++中,类的成员变量和成员函数分开存储。

2024-07-28 10:44:46 138

原创 4.2类和对象——对象的初始化和清理

构造函数:进行初始化操作析构函数:进行清理操作构造函数 语法:类名(){}析构函数 语法:~类名(){}

2024-07-17 06:19:27 748

原创 4.1类和对象——封装

可读可写:get (),set ();

2024-06-04 23:37:59 252

原创 3.函数高级:函数的默认参数|函数的占位参数|函数重载

占位参数,就是在参数列表中,有一个自己的数据类型,该数据类型也可以有默认参数。参数列表中,某位置有自己的默认值,从该位置起,往后就都必须设有默认值。函数的形参,有自己的参数值就用参数值,没有就用形参列表的默认值。函数重载,特点:函数名可以相同,目的:提高复用性。函数声明和函数实现,二者只能有一个设有默认值。

2024-06-04 00:05:12 260

原创 1.程序的内存模型

C++代码执行中,内存分为四个区:代码区、全局区、栈区、堆区。上述总结,如有错误,欢迎指正。

2024-06-02 10:50:22 231

原创 C++通讯录管理系统

【代码】C++通讯录管理系统。

2024-06-01 15:59:34 267

原创 结构体 基础知识

​2.1 Struct 结构体名 变量名​​。

2024-06-01 09:01:01 239

原创 函数 基础知识

作用:将一段经常使用的代码封装起来减少重复代码一个较大的程序,一般分为若干个程序块,每个块实现特定的功能。return a>b?a:b;函数的定义一般主要有5个步骤:1、返回值类型2、函数名3、参数表列4、函数体语句5、return 表达式。

2024-04-18 23:14:04 301

原创 指针 基础知识

/1、定义指针int a = 10;//指针定义的语法: 数据类型 * 指针变量名;int * p;//让指针记录变量a的地址p = &a;//& 为取址符cout

2024-04-06 18:55:26 306

原创 数组-二维数组

常用第二种方式定义,原因:第二种方式更清晰列数可以省行数不可省 ,详见上述第四种定义方式。

2024-04-06 11:59:21 255

原创 代码随想录算法训练营第25天|216.组合总和III |17.电话号码的字母组合

本题大家刚开始做会有点难度,先自己思考20min,没思路就直接看题解。学完感想: 关于“组合”、“剪枝”,算法思路是字面意思上的理解。如果把 组合问题理解了,本题就容易一些了。学完后的想法:尽力去理解了,但还是够呛。216.组合总和III。17.电话号码的字母组合。

2024-04-01 22:46:29 347

原创 代码随想录算法训练营第24天|理论基础 |77. 组合

回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯函数也就是递归函数,指的都是一个函数。

2024-04-01 22:02:47 1066

原创 代码随想录算法训练营第20天|654.最大二叉树 |617.合并二叉树 |700.二叉搜索树中的搜索 |98.验证二叉搜索树

又是构造二叉树,昨天刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树都是 前序遍历。这次是一起操作两个二叉树了, 估计大家也没一起操作过两个二叉树,也不知道该如何一起操作,可以看视频先理解一下。但本题是有陷阱的,可以自己先做一做,然后在看题解,看看自己是不是掉陷阱里了。递归和迭代 都可以掌握以下,因为本题比较简单, 了解一下 二叉搜索树的特性。遇到 搜索树,一定想着中序遍历,这样才能利用上特性。算法思想:用前序遍历来合并两个二叉树。因为构造顺序是根左右。

2024-03-31 23:37:33 414

原创 代码随想录算法训练营第21天|235. 二叉搜索树的最近公共祖先 |701.二叉搜索树中的插入操作 |450.删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性。本题迭代和递归方法都简单,因为有序。算法思路:利用二叉搜索树的特性:左<根<右。遍历二叉搜索树,如果当前节点比P,Q的节点都大,则P,Q的公共祖先向该节点左子树寻找,反之,如果当前节点比P,Q的节点都小,则P,Q的公共祖先向该节点右子树寻找,当找到第一个在P、Q大小之间的节点,即为最小公共祖先。应用场景:求最近公共祖先,因为。

2024-03-27 21:45:34 629

原创 代码随想录算法训练营第20天|530.二叉搜索树的最小绝对差 |501.二叉搜索树中的众数 | 236. 二叉树的最近公共祖先

更优解法 双指针:设两个指针,cur和pre, 指向当前节点和前一个节点,用cur-pre,结果用result数组保存(result初始值设为int型最大值,因为求最小值),之后result不断和cur-pre比较,如果小的话,result更新替换为更小的那一个,如此递归,直到结束,选出最小值。普通解法:先遍历一遍二叉树(前/中/后续,都行)用map统计每个元素出现的频率,对这些频率排序,方法是把map转换为vector数组,然后找众数。背景:本题其实是比较难的,可以先看我的视频讲解。

2024-03-26 23:12:38 341

原创 代码随想录算法训练营第16天|104.二叉树的最大深度 559.n叉树的最大深度|111.二叉树的最小深度|222.完全二叉树的节点个数

什么是深度,什么是高度,如何求深度,如何求高度,这里有关系到二叉树的遍历方式。要先看视频讲解,就知道以上我说的内容了,很多录友刷过这道题,但理解的还不够。二叉树用到的迭代法,可以直接过,二刷有精力的时候 再去掌握迭代法。先看视频讲解,和最大深度 看似差不多,其实 差距还挺大,有坑。思路细节:本题 最小深度 定义是:根节点到叶子结点的最小距离。今日收获+学习时长:大概对最小深度了解了。学完后想法:最小深度和最大深度的中间过程差别还很大。今日收获+学习时长:代码可以看懂。学习时长:学习时长,不详。

2024-03-24 23:44:46 530 1

原创 代码随想录算法训练营第18天|513.找树左下角的值|112. 路径总和 | 113.路径总和ii |106.从中序与后序遍历序列构造二叉树 |105.从前序与中序遍历序列构造二叉树

2.确定终止条件,即找到叶子节点 以及 如果叶节点的深度如果比maxDepth的深度大的话,更新最大深度。106.从中序与后序遍历序列构造二叉树,105.从前序与中序遍历序列构造二叉树 一起做,思路一样的。学完后想法:二叉树对递归和回溯的应用,感觉就是标配,怎么题题都有。背景:本题 又一次设计要回溯的过程,而且回溯的过程隐藏的还挺深,建议先看视频来理解。思路细节:求的是深度,用前/中/后序遍历都可,因为就不涉及中节点的处理。今日收获+学习时长:大概了解了求路径之和的思路。今日收获+学习时长:无。

2024-03-23 19:49:25 515

原创 代码随想录算法训练营第17天|110.平衡二叉树 |257. 二叉树的所有路径 |404.左叶子之和

这是第一次接触到回溯的过程, 视频里重点讲解了 本题为什么要有回溯,已经回溯的过程。虽然我很认真的学下来了,但我还是不会/(ㄒoㄒ)/~~这代码让我自己写我还是写不出来,好在收获点理论性的知识了!今日收获+学习时长:回溯你用不用,它都在那里,就在递归的“下面”。其实本题有点文字游戏,搞清楚什么是左叶子,剩下的就是二叉树的基本操作。3.确定单层递归的逻辑。学完后想法:我知道什么是左叶子,但不妨碍我犯迷糊,回头再补吧。再一次涉及到,什么是高度,什么是深度,可以巩固一下。今日收获+学习时长:学习时长,不详。

2024-03-22 23:33:47 607 1

原创 代码随想录算法训练营第15天|层序遍历 | 226.翻转二叉树 | 101.对称二叉树 2

层序遍历。

2024-03-21 22:56:36 928 1

原创 代码随想录算法训练营第14天| 二叉树的理论基础| 递归遍历| 迭代遍历| 统一迭代

链式存储的二叉树节点的定义方式。int val;说到二叉树,就不得不说递归。递归遍历背景:(必须掌握)二叉树的三种递归遍历掌握其规律后,其实很简单代码随想录做题初始状态:算是二刷,思路上有点模糊的印象学完后想法:简单思路关键点:1.确定递归函数的参数返回值2.确定终止条件3.确定单层递归的逻辑今日收获+学习时长:复习了递归思路。学习时长,40min。

2024-03-19 21:42:34 1060 1

原创 代码随想录算法训练营第13天|239. 滑动窗口最大值|347.前 K 个高频元素|总结

寻找前k个最大元素流程如图所示:(图中的频率只有三个,所以正好构成一个大小为3的小顶堆,如果频率更多一些,则用这个小顶堆进行扫描)

2024-03-18 22:18:29 1351

原创 代码随想录算法训练营第11天|20. 有效的括号|1047. 删除字符串中的所有相邻重复项|150. 逆波兰表达式求值

第三种情况:遍历字符串匹配的过程中,栈已经为空了,没有匹配的字符了,说明右括号没有找到对应的左括号return false。第一种情况:已经遍历完了字符串,但是栈不为空,说明有相应的左括号没有右括号来匹配,所以return false。就是字符串遍历完之后,栈是空的,就说明全都匹配了。第二种情况:遍历字符串匹配的过程中,发现栈里没有要匹配的字符。2.首先建立一个新栈,新栈放另一半匹配的右括号,栈顶遇见相同的右括号时逐一删除。2.将栈中的元素用一个字符串记录,然后反转字符串,输出该字符串,即为所求结果。

2024-03-17 21:35:18 956 1

原创 代码随想录算法训练营第10天|栈与队列理论基础|232.用栈实现队列 |225. 用队列实现栈

文档背景:了解一下 栈与队列的内部实现机智,文中是以C++为例讲解的。

2024-03-16 00:24:29 1486 1

原创 代码随想录算法训练营第8天|344.反转字符串|541. 反转字符串II|卡码网:54.替换数字|151.翻转字符串里的单词|卡码网:55.右旋转字符串

这道题目基本把 刚刚做过的字符串操作 都覆盖了,不过就算知道解题思路,本题代码并不容易写,要多练一练。学完后想法:惭愧,此题之前虽然做过2遍,但重刷还是不会,原因是对双指针的思想还不够深入。本题又进阶了,自己先去独立做一做,然后在看题解,对代码技巧会有很深的体会。今日收获+学习时长:如何用双指针反转字符串搞懂了,开心。今日收获+学习时长:,学习时长,不详。今日收获+学习时长:,学习时长,不详。今日收获+学习时长:,学习时长,不详。今日收获+学习时长:,学习时长,不详。卡码网:55.右旋转字符串(补)

2024-03-15 00:30:06 937 1

原创 代码随想录算法训练营第9天|28. 实现 strStr()|459.重复的子字符串|字符串总结 |双指针回顾

因为大家 算法能力还没到,细扣 很难的算法,会把自己绕进去,就算别人给解释,只会激发出更多的问题和疑惑。所以大家先了解大体过程,知道这么回事, 等自己有 算法基础和思维了,在看多看几遍视频,慢慢就理解了。因为KMP算法很难,大家别奢求 一次就把kmp全理解了,大家刚学KMP一定会有各种各样的疑问,先留着,别期望立刻啃明白,第一遍了解大概思路,二刷的时候,再看KMP会 好懂很多。KMP和本题,一刷的时候 ,可以适当放过,了解怎么回事就行,二刷的时候再来硬啃。28. 实现 strStr()

2024-03-15 00:27:00 894 1

原创 代码随想录算法训练营第7天|第454题.四数相加II|383. 赎金信|第15题. 三数之和|第18题. 四数之和

初始做题状态:不会本题背景:本题是 使用map 巧妙解决的问题,好好体会一下 哈希法 如何提高程序执行效率,降低时间复杂度,当然使用哈希法 会提高空间复杂度,但一般来说我们都是舍空间 换时间, 工业开发也是这样。学完后想法:该题听完好几遍依然没懂,日后还需再看,希望能比今日理解有所深入思路关键点:1.思路:仅仅遍历数组列表A,B, 取A,B中的数组元素a+b, 再遍历数组列表C,D,取C,D中的数组元素c+d,看是否符合a+b+c+d=0,符合就统计key对应出现的次数value。

2024-03-12 23:07:41 2564 1

原创 代码随想录算法训练营第5天|哈希表基础|242.有效的字母异位词 |349. 两个数组的交集

202. 快乐数 (未完)

2024-03-12 00:10:03 3001 1

原创 代码随想录算法训练营第4天|24. 两两交换链表中的节点|19.删除链表的倒数第N个节点|面试题 02.07. 链表相交|142.环形链表II

本题背景:中等题,重点,考察链表细节。

2024-03-09 22:42:58 1583

原创 代码随想录算法训练营第3天|203.移除链表元素|707.设计链表|206.反转链表

(空指针的意思)。链表的入口节点称为链表的。

2024-03-08 23:48:04 1682 1

原创 代码随想录算法训练营第2天|977.有序数组的平方|209.长度最小的子数组|59.螺旋矩阵II

​文档讲解:初始做题状态:暴力算法半对,有进步,开心记录和朋友的聊天,哈哈。

2024-03-08 00:17:57 1598

原创 代码随想录算法训练营第一天|704.二分查找、27.移除元素

​初始做题状态:做错学完后想法:对二分查找,这种借助中间元素位置,不断对[left,right]或[left,right)区间的分段讨论的思路更清楚遇到的重点和困难:1.对target<nums[middle]和target>nums[middle]这两种情况下,right和left分别等于什么?(重点)2.(right-left)>>1等价于(right-left)/2,且前一个速度更快 (遇到的困难)

2024-03-06 23:41:39 2876

原创 string.h

本记为观看B站上 C/C++ 算法竞赛语法课『录制·纯享版』后的学习笔记。如有错误欢迎指正。

2024-01-13 11:56:21 485 1

空空如也

空空如也

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

TA关注的人

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