- 博客(62)
- 收藏
- 关注
原创 【LeetCode刷题】前缀和解决问题:742.寻找数组的中心下标、238.除自身以外数组的乘积
Day 15:前缀和解决问题:742.寻找数组的中心下标、238.除自身以外数组的乘积
2024-06-02 18:42:18
755
2
原创 【LeetCode刷题】二分查找:寻找旋转排序数组中的最小值、点名
与 当前数组各个数异或,若结果为x,则返回x;当x等于0时,需要格外处理,有两种情况,缺0或者是最后一个数后面的数。这道题的二分查找很有趣,需要细节,能发现二段性,这题就相当简单。若结果为x,则返回x;当x等于0时,需要格外处理,与思路3一样。遍历数组,寻找后一位减前一位的差为2的数,找到就返回,没找到就返回最后一个数的下一个。这里我们可以有两种方式:以A为参照,以D为参照,来找C点的值。这道题很简单,有很多思路,简单的我就直接讲一下过程就OK。分别将数据导入哈希表,然后查看哪个数的个数为零,返回该值。
2024-06-01 20:08:47
876
原创 【LeetCode刷题】二分查找:山脉数组的峰顶索引、寻找峰值
不管哪种,我们只需要找区间中峰顶的值,反正逻辑是一样的,下降就找前面,增加就找后面,不管中间怎么变,是这个“山峰”跳到另一个“山峰”,反正找到其中一组就可以,随着区间不断缩小,也会集中在一个“山峰”上。这题情况还是比较多,递增开始,还是递减开始,递增开始我们需要找后面比较大的值,递减开始,说明第一个值就可以。暴力枚举的话就是找单调性,越来越大,直到找到,一个数大于后一个数。就是单调性相关的问题。
2024-06-01 14:25:18
440
原创 【LeetCode刷题】滑动窗口解决问题:串联所有单词的子串(困难)、最小覆盖子串(困难)
滑动窗口解决问题:串联所有单词的子串(困难)、最小覆盖子串
2024-05-28 23:53:07
493
原创 【C++语言】继承:类特性的扩展,重要的类复用!
class 派生类 : 继承方式 基类 {};继承是C++的语言的一重大进步,更加的面向对象,但存在一些缺陷,需要避免。世界还有很多值得探索,所以请天天开心!🎈。
2024-05-26 23:49:35
1205
原创 【LeetCode刷题】滑动窗口思想解决:最大连续1的个数 III、将x减到0的最小操作数
滑动窗口思想解决:最大连续1的个数 III、将x减到0的最小操作数
2024-05-26 20:21:04
1122
原创 【LeetCode刷题】滑动窗口思想解决问题:长度最小的子数组、无重复字符的最长子串
滑动窗口思想解决问题:长度最小的子数组、无重复字符的最长子串
2024-05-26 14:52:25
1172
原创 【LeetCode刷题】快乐数、盛水最多的容器
为例:开始计算第一个和最后一个围成的体积:v1= 4*3=12,然后我们可以发现,我们以两者中高度小的,来和两者之间的数来计算体积,发现宽度(w)对于v1来说一直在减小,高度最高为4,所以不管怎么计算这个体积都是小于v1的。这里我们把两种情况抽象为两个都后再后面会成环,第一种的环上全是1,第二种只有相交点相等,其他都不相等。–>n
2024-05-21 23:58:39
266
原创 【Acwing积累】第一周(完全数、只出现一次的字符)
我们求x的约数,其实不用找全,找到小的那个(假设为d),大的那个(假设为e)也可以通过除法得到。因此我们可以通过数学推导:因为。string类,合理运用成员函数:find和rfind。当正向遍历时,出现正反查找位置都是同一个的时候,表明该字符只出现一次。根据上述内容, 这道题可以直接 O(1)O(1) 解决.因此我们可以少找一半的约数。一次循环数据量可以从最高。两个循环,一一对比,复杂度O(n*n),比较烂。
2024-05-21 01:42:22
453
2
原创 【LeetCode刷题】移动零、复写零
C语言来实现的话就是,遍历遇到零,就后面的数向前覆盖,在补一个零。这里C++其实也是相同的思路,erase删除,push_back尾插。但是位置的时候又会引发一个问题:cur最后一个位置是0,会导致dest位置越界(这一点需要考虑)遍历,是零就插入一个零,注意i需要加1,防止再次访问已处理过的零,插入后再尾删即可。我们不能从前往后写,因为dest指针会跑到cur后面,导致后面未处理数据被覆盖。将数组分为两个区间,左边为非零区间,右边为零区间。将数据分为三个区域:非零区域,零区域,未处理区域。
2024-05-21 00:38:58
637
原创 【C++语言】想学STL,先细细拿捏string类,万字详解string类 (内附精美思维导图)
这一节我们将详细学习string字符串这个类,string类是早于STL标准库的,后面把string归属到STL,支持标准库中很多操作。触类旁通,通过学习string,也便于我们更好的学习STL。活不多说开始~
2024-05-19 21:49:01
753
原创 【LeetCode刷题】栈和队列题目练习~
一个栈保持空队列,每次push就往里push,再把另一个栈顺序的队列的元素全部导到这个刚push一个的元素里。遍历tokens,是数字就按顺序存在容器里,遇到运算符,就取出最近插入的两个数字计算,注意前面的减后面的(减法和除法注意),然后再把计算结果返回到容器里。正常栈push进数据,再要pop或者返回top的时候,几把数据push到辅助栈里,然后辅助栈pop、top都可以。一个队列思路就是:一个元素进去,要保证它是在front位置,怎么保证,把前面的所有元素再一次push进队列就可以。
2024-05-19 12:24:05
896
原创 【C++语言】初步认识面向对象编程&&类和对象(上)
此篇博客为简要介绍面向过程与面向对象的概念及区别,类的实例化对象、定义、封装、以及类的大小。
2024-04-15 19:51:31
975
原创 【C++语言】冲突-C语言:命名空间
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的//变量:int a = 10;//函数://类型:结构体int val;关于C语言和C++的一些冲突,命名上就是突出的一点,C语言无法解决,所以C++提出方案。命名空间的介绍,以及namespace关键字的使用命名空间的三个特点。
2024-03-15 23:16:20
1097
2
原创 链表入门(单链表讲)
我们在了解线性结构最重要的就是明白这个结构是如何定义的,是怎样的一种结构。这里单链表的定义,我们考虑的是我们需要这个结构中包含什么,这里我们需要的是一个数据域和一个指针域数据域用于存储数据,指针域用于链接每个单链表节点。//typedef 一下,方便我们更改所需存储的类型//数据域,用于存储数据//指针域,用于链接下一个结点}SLTNode;
2023-09-27 21:45:51
243
原创 C++入门攻略
/变量: int a = 10;//函数: int Add(int left , int right) {} //类型:结构体 struct Node {int val;
2023-06-13 19:52:24
703
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人