- 博客(25)
- 收藏
- 关注
原创 单调栈问题
当新元素比栈顶元素小或等于时,直接入栈;否则,一直从栈顶弹出元素,直到栈顶元素小于新元素或栈为空。当新元素比栈顶元素大时,一直从栈顶弹出元素,直到栈顶元素大于新元素或栈为空,然后将新元素入栈。因为可以循环,直接将数组进行拼接,这样就破解循环问题了,就如同前面的每日温度问题了。先找到和 nums1 对应的 nums2 数,找到后,在循环找更大的,找到就退出。我们可以先对 nums2 进行单调栈,找到他每个元素的的下一个更大的数。单调栈的核心原理是:在栈内保持元素的单调性(递增或递减)
2024-05-12 14:52:45
364
原创 回溯算法精讲
其实组合问题,最经典就是77题的组合,其他题型无非就是在此基础上加入了路径的值,或者不能重复。怎么去重?去什么的重?树枝上?还是同一树层?怎么使用visited,来判断是否经历过这个节点?// used[i - 1] == true,说明同一树枝candidates[i - 1]使用过// used[i - 1] == false,说明同一树层candidates[i - 1]使用过组合问题最基础还是77题,基本都是在此基础上的衍生。return;i<=n;i++)// 不能重复选择。
2024-05-12 14:52:23
985
原创 c++高级语言专题(一)
面向对象编程:就是属于吧构成问题的各个事物分解成各个对象,建立对象不是为了完成一个步骤,而是为了描述一个事物在整个解决问题的步骤中的行为。当我们把一个数据成员的存储类型指定为静态类型时,则该类产生的所有对象其静态成员均共享一个存储空间,这个空间时在编译的时候分配的。一个类作为宁一个类的友元,意味着,这个类的所有成员函数都是宁一个类的友元函数,都可以进行访问。析构函数:在对象生命周期结束时,释放系统为对象所分配的空间,即撤销一个对象。类是对象的抽象,而对象是类的具体实例。对象的类型称为类(class)。
2024-04-01 17:09:16
310
1
原创 c++语言三块核心内容(非常高级)
编译过程中,符号是不分配虚拟地址的。符号的重定向;符号原本是没有地址的,但是符号解析成功后,我们就需要堆所有符号进行分配虚拟地址,这就叫做重定向。符号什么时候分配虚拟地址?在连接过程:符号解析完成后。
2024-03-30 17:14:01
234
原创 windows高级开发网络编程的秘密(详细罗列)
网络结构的标准模型是OSI模型,由国际互联网标准化组织定义的网络分层型。虽然目前没有完全按照这种模型实现的网络协议栈。什么是协议栈?一个网络上运行的网络规则。通过协议栈的不同可以划分为不同层。
2024-03-15 09:13:57
321
1
原创 那些你不知道的数据库入门技巧(非常详细)
数据库:DB(DataBase)概念:数据仓库,软件,安装在操作系统之上作用:存储数据,管理数据。
2024-02-23 18:41:28
1035
1
原创 简单排序的那些事儿(c++详细讲解)
选择排序从数组的第一个元素开始,假设它已经是最小值。:在剩余未排序的元素中(从第二个元素开始),找到最小元素的索引。:将找到的最小元素与数组的第一个元素交换位置。此时,数组的前两个元素已经是最小的两个元素。:将数组的起始位置向后移动一位(即从第二个元素开始),重复步骤2和步骤3,直到整个数组排序完成。:选择排序每次遍历都能找到最小(或最大)的元素,但是它不会直接放在正确的位置上,而是通过交换的方式逐步移动到正确的位置。
2024-02-22 23:03:24
754
1
原创 c++那些你不知道的标准特性(非常重要)
auto 将变量的类型和初始值绑定在一起,而 decltype 将变量的类型和初始值分开;虽然 auto 的书写更加简洁,但 decltype 的使用更加灵活。我们定义了一个MyVector类,它包含一个std::vector类型的成员变量data,并定义了一个自定义类型的迭代器iterator。
2024-02-22 11:35:22
1017
1
原创 二叉树算法
一: 二叉树基础1.1 二叉种类1.1.1 满二叉树满二叉树:就是所有节点要么为0要么为21.1.2 完全二叉树完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层(h从1开始),则该层包含 1~ 2^(h-1) 个节点。因为,需要顺序,先左后右1.1.3 二叉搜索树二叉搜索树是一个有序树。若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右
2023-11-18 16:19:57
220
1
原创 数组算法讲解
s += v;在这个代码中:这个地方我就直接进行了差分方程,这样大大简化了代码运行量,不过从入门角度来讲,上文的class 类更加方便易懂。运用滑动哈希算法一边滑动一边计算窗口中字符串的哈希值,拿这个哈希值去和模式串的哈希值比较,这样就可以避免截取子串,从而把匹配算法降低为 O(N)// 文本串// 模式串// 需要寻找的子串长度为模式串 pat 的长度// 仅处理 ASCII 码字符串,可以理解为 256 进制的数字。
2023-11-12 20:42:26
71
原创 链表算法讲解
所以:我们首要自己定义链表// 单链表int val;// 节点上存储的元素// 指向下一个节点的指针ListNode(int x) : val(x), next(NULL) {} // 节点的构造函数。
2023-11-08 11:29:53
138
1
原创 字符串(力扣题库)
最简单方法直接用c++库:1.strrev函数。(cstring)2.reverse函数(algorithm)3.利用string构造函数(string)string容器,自带反转为了减少直接调用库函数解决问题,采取了下列方法写出方法,通过swap字符反转也可以使用双指针法:(该方法和上述方法类似,基本是同理概念)
2023-09-27 17:07:16
59
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人