- 博客(59)
- 收藏
- 关注
原创 秒懂C++之string类(上)
在vs编译器中reserve的扩容是按1.5倍率慢慢扩容的,而就算我们用reserve提前扩容最后也只会比预估的还大。at其实和【】用法基本一样,唯一不同的是它们对越界访问的处理不一样,【】直接报错,而at是抛异常。因为在func函数中的形参被const所修饰,这意味着*it无法被修改。后面没啥用,本来遍历访问就得靠it本身遍历,加了个const直接废了。这是一些基本用法,但我们一般不用append,还有一个更简单的~当我们尝试缩容的时候发现在vs编译器下还是无法成功,从第一位开始读取,往后读5位。
2024-07-23 19:25:45
463
原创 算法——滑动窗口(day6)
那么我们不妨默认就把0当作1,选中一段区间只要里面0的个数不超过k那就可以了。这样就把问题转化为求0的个数不超过k的最长子数组,妥妥用滑动窗口。那么我们不如从另外一个角度来思考这个问题~right不用再回来遍历,因为之前都已经遍历并记录在sum中了,所以留在原位移动left即可。其实当我们转换为滑动窗口后相信看过我前边博客的友友们肯定都知道了,所以我们废话不多说。只要t<a,我们就让right继续往后遍历直到出现t>=a的情况。需要列举的有点多,不过也有很多可优化的空间~开始新一轮的寻找,这时候我们的。
2024-07-21 16:44:22
811
原创 算法——滑动窗口(day5)
(上一题是通过缩小窗口来求长度最小,所以每一次缩小都有可能得到最小长度)(而本题是求最大连续长度,只需要在去除所有重复项后计算就行了)
2024-07-20 18:03:09
834
原创 秒懂C++之类与对象(下)
本文讲述了static静态成员变量与函数在类中的运用,explict关键字的用法,友元知识点,内部类知识点,以及编译器的优化
2024-07-20 01:51:16
872
原创 算法——双指针(day4)
而这也是我们优先选择排序的原因,在排行序后二者就变为【-1,-1,0】,更容易去重。这样a与三数之和才相加才可以变为target,而在。不过这样也引发了新的问题:越界~~无非就是我们需要实时改动target的值。,这样才能与b相加得到target-a。这就是两数和的核心图解,因为按照题目规定类似于。
2024-07-19 18:51:15
495
1
原创 算法——双指针(day3)
三角形的判定很简单,任意两边之和大于第三边即可。按照正常情况,我们得判断3次才可以确认是否构成三角形。在这种选择比较大小的组合中往往蕴含着单调性,只要我们找到并利用双指针就可以节省很多时间。因为c在本来就是最大的情况下与任意一个数组合只会更大,因此不会再进行判断,最后进行一轮比较完毕后,我们再移动最大数c进行第二轮的比较,以此类推即可。我们先固定最大的数(9)充当c,然后再分别选出两端的数充当a与b(与上面同理,当我们发现有无法构成的情况时(2与7组合),,然后前进一位继续对比。然后往前一位继续对比。
2024-07-18 18:42:28
449
原创 算法——双指针(day2)
我们先划出一个小范围,然后尝试在该范围里面选出最大容量。我们优先选取两端数,这样可以保证长度是最长的,然后。当我们知道规律后就很简单了,列出双指针指向两端。记录每一次所指向的两个数对应的容量,然后。这里我们还是可以使用双指针的解法——快慢指针~相信大家不会陌生,两数谁小谁就先缩进一位继续比较,直到相遇。
2024-07-17 17:38:40
477
原创 秒懂c++之拷贝构造与运算符重载(略讲)
本文主要给大家讲解有关于拷贝构造函数的重点以及给后面运算符重载的知识开个小头,这两个都是很重要的内容,并且它们使用的情况并不明显,常常出现在细微末节的地方。
2024-07-16 17:03:36
910
原创 算法——双指针(day1)
双指针核心就在于通过赋予相应的职能去划分数组,待处理区间暂且不谈,关键就在于处理区间中的非0区间和0区间,两区间做到真正的数组划分。本题核心仍是双指针,区别就在于是把从前往后的遍历改为从后往前的遍历,这种方法可以有效避免数组覆盖问题~
2024-07-16 11:14:03
955
原创 秒懂C++之this指针、构造、析构
本篇文章全程高能,不仅讲解了this指针的隐藏面目还为大家详细讲解了构造函数与析构函数真正的实现内核,相信大家一定会有所收获的~
2024-05-22 15:46:03
944
15
原创 C++一一类与对象
本文讲的是c++中的类与对象,不同于c语言的结构体,类与对象会在我们后面的学习中更高频地出现。在C++中更喜欢用class去代替struct,其实二者并无太大差别。
2024-05-19 22:58:22
955
3
原创 快速排序(三)——hoare法
本文给大家带来的是快速排序,快速排序是一种很强大的排序方法,相信大家在学习完后一定会有所收获。码字不易,希望大家多多支持我呀!(三连+关注,你是我滴神!
2024-01-21 23:55:19
1174
19
原创 数据结构——二叉树的基本概念及顺序存储(堆)
本文除了给友友们普及二叉树与堆的概念外,更重要的是关于堆功能的代码实现,其中的方法会帮助提高我们的算法效率。其中的向下调整法是我们堆排序的核心,堆排序是一种具有很高算法效率的一种方法~
2023-10-02 20:04:50
2630
50
原创 数据结构——栈和队列
本文详细介绍的栈和队列的实现方式,更是重点提到了4个关于栈和队列的OJ题:分别是设计循环队列,用栈实现队列,用队列实现栈,有效的括号。
2023-09-27 23:58:19
4508
49
原创 数据结构——双链表
数据结构——单链表,那么本篇的双链表会让你感到非常的安逸~无压力学会。码字不易,希望大家多多支持我呀!(三连+关注,你是我滴神!双链表是不是非常轻松呢~不像我们学单链表那时候草木皆兵,啥都要判断一下,双链表突出的就是一个结构稳定,安逸的很~
2023-09-24 19:46:34
458
20
原创 数据结构——线性表之顺序表
本文为大家讲述的顺序表的基本逻辑与结构,另外加了两个经典例题(移除元素)(合并有序数组)为大家分析解题思路。最为关键的是全文核心就是让大家养成作图分析的习惯~~~
2023-09-19 11:55:08
995
46
原创 数据结构——时间复杂度与空间复杂度
本文为大家讲解了时间复杂度与空间复杂度以及如何计算这两类复杂度,另外还讲解了两道经典的在线OJ题(消失的数字)(旋转数组)帮助大家更深层去理解~
2023-09-17 10:52:04
706
40
原创 C语言——指针进阶(三)
讲述关于strlen和sizeof对于各种数组与指针的计算规则与用法。另外还有qsort函数的模拟实现(可以排序任意类型变量)
2023-09-15 10:14:44
807
39
原创 C语言——指针进阶(二)
再尝试按照名字比较,这时候的名字是字符串,可不能用减号来表示结果了,可以用到strcmp这个函数来比较字符串,巧合的是strcmpd的返回类型与cmp的返回规则一致。这就是回调函数的神奇之处,用函数指针来接受所需要的函数功能,在calc函数里面使用已经接受了功能函数的地址的指针,输入实参。字符串之间的排序是按照字典顺序比较的,比如abc与aq,一开始两个a相同,但后面的q比b大,所以abc排在aq的前面。cmp的规则是当p1指向的元素>p2指向的元素时返回大于0的数字,相等返回0,小于返回小于0的数字。
2023-09-10 00:30:05
1124
67
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人